This project is read-only.

Error: System.ArgumentException; The string is not a valid number


I am fairly new to WinMilk and RTM. I had WinMilk running and synching with my RTM account fine. After adding a bunch of tasks, a couple lists, and a smart list this error started to appear. I'm guessing that it's appear every time WinMilk is attempting to update it's local data. It occurs when first opening WinMilk, and after adding a task. Some of the lists have items, some of them don't (they all have items on RTM site).

I'm using WinMilk 1.3, and I was using 1.3 before I had problems as well.


JesseMcDowell wrote Aug 11, 2011 at 10:10 PM

I compiled and ran the WinMilk 1.3 source in the debugger, connected it to my RTM account, and was able to gather much more information.

You can reproduce this issue by creating this task in RTM:
Test *"the 1st and 16th of every month"

Here is the full exception detail:
System.ArgumentException was unhandled
Message=This string is not a valid number
Parameter name: number
   at IronCow.RecurrenceConverter.GetNumberWithOrdinal(String number)
   at IronCow.RecurrenceConverter.FormatRecurrence(String repeat, Boolean isEvery, DateFormat dateFormat)
   at IronCow.Task.SetRecurrence(RawRepeatRule rawRepeatRule)
   at IronCow.Task.DoDownloadSyncFromTaskSeries(Boolean firstSync, RawTaskSeries series)
   at IronCow.Task.DoDownloadSync(Boolean firstSync, TaskBundle bundle)
   at IronCow.Task.DoSync(Boolean firstSync, RawRtmElement element)
   at IronCow.RtmElement.Sync(RawRtmElement element)
   at IronCow.TaskListTaskCollection.InternalSync(RawList[] lists)
   at IronCow.TaskList.InternalSync(RawList rawList)
   at IronCow.Rtm.LoadTasksFromResponse(Response response)
   at IronCow.Rtm.<>c__DisplayClass3a.<CacheTasks>b__39(Response response)
   at IronCow.Rtm.<>c__DisplayClass4e.<GetResponse>b__4d(Response response)
   at IronCow.Rest.RestClient.<>c__DisplayClass8c.<GetResponse>b__8a(String r)
   at IronCow.Rest.RestClient.<>c__DisplayClass8f.<GetRawResponse>b__8e(IAsyncResult result)
   at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClassa.<InvokeGetResponseCallback>b__8(Object state2)
   at System.Threading.ThreadPool.WorkItem.doWork(Object o)
   at System.Threading.Timer.ring()
In this case, the value of number is "1, 16"

One other issue: after the error appears, the busy indicator (green dots) continue going forever.