Controller lost sync with schedule

Lately, I noticed that my Rachio 2 was watering for way longer than it should at this time of year. My fixed schedule calls for 47 minutes total runtime, but the history showed that it actually ran for 92 minutes (with no soaking cycles). Here are screenshots of the schedule and a recent run of that schedule:

As can be seen, most (but not all) of the individual zones ran for much longer than the schedule calls for.

I figured that the controller must have fallen out of sync with the schedule, so I power cycled it. Next time the schedule ran, the runtime was correct:

(The difference between 44 and 47 minutes can be attributed to roundoff error.)

The controller probably had not restarted for several months. In the meantime, there had been several seasonal shifts, which I was notified about and which correctly adjusted the watering times for all zones, as viewed on my iPhone and in the web app. Clearly, the schedule had been updated in Rachio’s cloud, but the changed schedule had not been pushed down to my controller.

A possible reason for this is that I had several Internet outages at my home, including one that lasted for nearly a week. The most recent seasonal shift occurred during that outage (not sure about the others). As I understand, when a controller goes offline, it continues to run with the schedules that it currently has. But I would expect that when it goes back online, it should resync with the schedule in Rachio’s cloud. In this instance, either the controller stopped synchronizing with the cloud or it reverted to a schedule from several months ago.

I have two controllers and they both exhibited this behavior, so clearly there is a bug somewhere. Perhaps someone can explain how the controller is supposed to resync with the cloud after being offline for a while.