Due app background syncing

I’ve started using Due again over the past few weeks. One thing bugs me: I can mark a Due alert done on one device, but will often continue to be reminded about the same alert on my other synced iOS devices. It’s a minor irritation, but compounding over time.

I’ve run through my settings, and I’ve managed to get things working on some occasion, i.e. mark an alert done on one device and receive the “1 reminder modified” notification on others. But more often than not, changes don’t sync to a device until I manually open Due on it.

Does anyone else have a better experience of background syncing of alerts in Due? I’ve read the FAQ that suggests it might be an iOS failing, so I appreciate that this might be as good as it gets.

Alternatively: does anyone know of a notification tool that offers a better experience of syncing between multiple devices, with similar auto-snoozing/persistence, integration with Shortcuts and possibility for a url to be invoked from a notification? Thus far, I’ve run a quick test with GoodTask’s auto-snooze feature, which seems to offer the same kind of “persistent until done” functionality that I appreciate Due for, but also seems to suffer from the same lazy syncing (my use of “lazy” here is not as judgement or criticism for either of these apps…)

My only other way forward, far as I can see, would be to remove Due from all but one device, leaving that as the one true source for all Due alerts. Somewhat sad, but might be a workable option…

1 Like

Yes, whenever I mark something done on the Mac it fails to sync to Due when the phone is locked. I never have the opposite problem as Due is always on, and my Mac is always on.

I would not be surprised if this is a limitation of iOS, although I cannot recall this issue arising with Todoist. (On the other hand, I rarely set alarms in Todoist because they usually don’t alert me as well as Die does on the iPhone, which is important when I’m not at my desktop.

It can be a repeated annoyance, but it’s a slight one.

1 Like

Hm. Makes sense: syncing happens as expected when the app is awake (e.g. on your Mac); background syncing on iOS is subject to considerations that seem to make this a bit more of a crapshoot. Ah well.

If anyone else has a workaround, I’m all ears…

Not really a work around as such, but I have switched off the notifications on my iPad, leaving them on for my iPhone and Apple Watch. This means I can add and modify reminders on any device, but the reminders only alert on a single device (well watch and phone) one of which is always with me. I don’t need to see the alert on the iPad.

2 Likes

Hm. This actually might work for me. Thanks!

1 Like

This was the reason I stopped using Due. I looked for a solution for ages but couldn’t find one. I switched to Reminders as a replacement because background sync works perfectly with it using multiple devices.

1 Like

I was going to suggest what @Tony said. One way without turning off notifications completely on iOS-level is to do it from within Due > Settings > Alerts & Badges. In fact, you may find it helpful to just turn off “Auto Snooze” notifications for reminders. This way, you’ll get notifications, but you won’t get them incessantly if background sync fails.

A little background on background sync. Whenever you make any changes to your database, we need to pull in the changes and reschedule notifications appropriately on all of your devices linked with Due. However, this can only happen when the app is actively running.

How background sync works is that whenever a change is made to your database, we send out a silent push notification to all of your devices linked with Due.

On iOS, this has the effect of waking up the app in the background for a short period of time (though as you’ve experienced, this is not guaranteed, as iOS still makes the call whether to do so based on a variety of factors like battery life, usage of the app, network status, etc.). On macOS, if the app is running, the system should inform the app that the silent push notification has arrived. Upon receiving this silent push, the app would perform the actual syncing.

The most likely scenario as to why background sync failed to work on iOS is because iOS decided not to wake the app up to perform the sync. This article by Apple, Pushing Background Updates to Your App, spells out the limitation:

Important

The system treats background notifications as low priority: you can use them to refresh your app’s content, but the system doesn’t guarantee their delivery. In addition, the system may throttle the delivery of background notifications if the total number becomes excessive. The number of background notifications allowed by the system depends on current conditions, but don’t try to send more than two or three per hour.

This limit would make sense in general to preserve our battery life against less scrupulous apps, although it is frustrating that as a user, we aren’t able to override that and specify that we’d like an app to be always woken up in response to such a push.

3 Likes

Thanks for the detail here! The irony is that Due has been syncing notifications much more reliably in the past few days since I posted this. Haven’t changed anything in my set up of workflow except for not using Due on my iOS 14 beta testing iPad, and acknowledging notifications more often before they go into auto-snooze. If the latter has helped the sync situation, there’s a knock-on positive behaviour adjustment… :wink:

Also, thanks for making Due. I’ve used it on and off for years now, and there’s nothing else that quite compares. It’s one of a couple of apps I’ve known about for some time, but that I’ve recently come to appreciate how well they actually meet my needs.

Thanks for joining in with the info. For some reason iOS has been a lot stingier with the background sync lately, and when I’m home I’m not using the phone much so I don’t understand why it would want to conserve resources. It’s also been when I’ve had the most issues, since when I’m home I use the upgraded Mac app (which I love) to add and edit events. It’s an annoyance when they don’t sync over. It’s great getting simultaneous Due alerts on my Mac and phone, less great when I Mark Done in the Mac… and then get a 2nd Due alert on the phone 10 minutes later.

(Interestingly though, new alerts usually sync from Mac to iOS quickly when the iPhone is locked, just not items marked as completed.)

If we base it off Apple’s documentation for background notification, it could be that background push for the first 1-2 changes within the hour were delivered, and subsequent ones were delayed or dropped because of throttling. Regardless, the entire thing is quite a blackbox to us developers as well, so my suggestion remains to disable auto snooze notifications on devices except your primary device to mitigate the issue.

@jsamlarose you asked earlier if there it a better syncing system. For most apps, we’d hardly notice this issue because delaying syncing until the app next reopens is not a big deal. But for Due, because of the unique combination of relying entirely on local notifications AND having persistent notifications, and the effects of not being woken up to refresh them is quite apparent.

I believe the only way to fully overcome this technical limitation is to move the entire notification infrastructure to push-based, where notifications are delivered entirely from a server. I’ve thought about this a number of times, though the additional complexity of maintaining such a server, user accounts and running costs, have prevented me from going ahead with this idea.

In the meantime, I may explore some ideas making use of improvements to Siri Shortcuts automation in iOS 14, where shortcuts can run automatically. Perhaps scheduling more periodic form of syncing via Shortcuts in the background would be helpful.

Thanks again for all the feedback!

3 Likes

I appreciate your visiting and discussing this. At any one time I have a couple of dozen items in Due, including repeating tasks, and sync issues have become more noticeable during shelter-at-home. When home I’m typically marking as completed alarms on the Mac (when I used to do it on the go on the iPhone) and then getting a repeat reminder on the item on my iPhone 20 minutes later.

So theoretically, if Due could automatically perform a background sync once every 30 minutes via Siri Shortcut, I assume that could potentially help mitigate the issue for you? I’d need to test the impact on battery life though.

I don’t know if half-hour syncs help me, since I typically have repeat-notifications set at either 10 or 20 minutes. :man_shrugging: