OmniFocus 2 on iPhone 5 will not sync automatically ever [solved with the introduction of push-triggered background syncing]

Anything to update here? Would love to have a seamless, instantaneous option, like there is in Reminders, or Fantastical, or Things, or… I’m like so many others: looking around at other task management apps with flawless sync, but I really am tied in to OF (and like it best anyway).

In the April 2015 newsletter, the “What’s Next” section shows OmniFocus getting push syncing soon.

https://www.omnigroup.com/letters/04

2 Likes

Awesome! I missed that somehow. Thanks!

We’ve posted a detailed description of how push-triggered syncing works in OmniFocus 2.6 for iOS, which went into TestFlight a few hours ago:

2 Likes

Love this.

Re: this clause: “After OmniFocus finishes a sync…” at the start of a paragraph–

Sorry if I missed this, but after reading through that (excellent) article a couple times, I’m still not clear–what triggers such a sync in the first place? (I.e., on the initial device?) I’ve got the Test Flight build (2.6) now, and it seems that just entering a new task, for example, or editing an existing one by adding a start time, doesn’t automatically trigger a sync. Is that right/expected?

Here’s a post from last year which covers the normal triggers for syncing and explains how to tweak them:

Unless you do something to trigger a sync sooner (such as leaving the app on iOS), OmniFocus will collect your edits over the course of one minute and then sync all those edits at once.

Thanks, Ken.

I actually had an instance with the first TestFlight 2.6 build yesterday where automatic sync took longer than a minute and led to an outdated alert on another device (going between iPhone and iPad mini–apparently quitting the iPhone app did not trigger sync). But now I see a new build already, so I’ll simply report it if it happens again. The new (second) build of 2.6 did, unfortunately, do only a partial sync of some but not all data, which was odd. If that keeps happening, I’ll report in the appropriate place.

I think for me the larger question is that your average user is going to see this 2.6 update and expect something like the instantaneous sync that happens with Reminders across devices (or Things, or Fantastical, etc.). Somehow other apps seem to have syncs automatically triggered within the second after you make any changes at all.

All the under-the-hood stuff is, indeed, interesting, and you all explain it very well. But I think the end result (instantaneous sync across all devices immediately after any edit is made, regardless of how it works) is what most users are looking for, right?

Any chance something like that would also be coming to OmniFocus? Please let me know if I’m missing something in how it all works. Thanks for all the good work you all put into this app, and especially your responsiveness to users.

I am still having issue with this, even with the latest builds. I just tested Siri capture, and apparently the iPhone app did pull the task from reminders (as it disappeared from there) but it did not sync it to the server (at least for the time period I waited which was about 12 hours) until I actually opened the app on my iPhone.

To add: I had thought the new setup would mean that sync would happen in the background even with OF closed.

I update a task list on my OF on iPad, it syncs, and then even some hours later I get outdated notifications on my iPhone when OF isn’t open.

I didn’t think this would still happen, or did I misunderstand the new mechanism?

Push sync currently only works when OmniFocus is running, so if you force-quit OmniFocus (by swiping it up from the multitasking display) it will not send or receive push syncs. If that’s not what’s going on here and you’re still having trouble, you can email us at omnifocus@omnigroup.com and we’d be happy to investigate!

Was OmniFocus running on the iPhone during that time? If you force-quit OmniFocus (by swiping it up from the multitasking display) it will not send or receive push syncs.

You can also check your device’s sync log to see if that gives any indication as to what may be going on. To do that, pull down on the OmniFocus home screen to reveal the hidden toolbar, then tap Settings ▸ Last Synced.

The sync log should show a listing of each sync that has occurred, the time it occurred, the duration, and what triggered the sync. There’s a ‘share’ button in the toolbar you can use to email the log to us for troubleshooting if necessary.

I did not force quite, and yes it was running. I looked at the log and it showed it synced at 6:50 this morning (which is well after I inputed the task via Siri - that was at about 9 last night) and then not again until 10:36 and then again at 10:52. It is that second time that the task finally synced - not sure why it did not the first time. That being said, it seems to be working as it is suppose to now (the last one I tried synced over in about 10-15 minutes).

Thanks, Anne. Are there plans for push sync to operate even when the app is not open? It certainly is more convenient now than in the past, in that you don’t have to manually sync, but there is still the step of having to manually open OmniFocus on each device to make sure everything stays up-to-date.

The iOS limits when OmniFocus can sync or update, especially when the app is not launched on the device.

Supposedly it uses silent notifications to trigger a background fetch routine, which is throttled by iOS when the device is on cellular and battery. Moreover, the routine shares the same switch with Background App Refresh, so if one turned BAR off for OmniFocus, the routine apparently would never be triggered.

Thanks for the update. Sorry if I’m slow on the uptake, but does this mean, then, that Apple only allows its native apps to do this? Reminders stays up to date even when not launched, I thought. I thought Fantastical did, too, but maybe I’m mistaken.

Yeah. Apple’s iCloud services and Exchange client are guaranteed to wake for a sync. There are also exceptions like VoIP. Having said that, OmniFocus’ background uptime on the go is better than what I once expected (as I use Due too)…

As for Fantastical, it is likely that they have registered the alerts/badge counts to the system in advance. Since the limit of scheduled notifications is pretty large, refreshing only once a while would be fairly enough.

Hi @AbramKJ, I believe you’re correct. My understanding is that Apple’s native apps are allowed to do things that 3rd party apps are not. For example, Mail can alert you that you’ve received new email even when it’s not running.

Push sync has been working fine for me with the latest release versions of OmniFocus on Mac and iOS. There are a couple of posts here that explain how it’s been implemented:

https://support.omnigroup.com/omnifocus-push-architecture

As I understand it, until the most recent versions. OmniFocus used the simple “Background App Refresh” approach, which allows apps to start up (at iOS’ discretion) and perform actions in the background, but these are triggered by a timer that’s determined by iOS itself, and not by the app, and is supposedly based on how often you open the app (e.g. if iOS sees you open OmniFocus at 8 AM every morning, it will schedule a background wake-up call for the app at that time automatically).

The new architecture, which is only available in the very latest versions of OmniFocus, uses background push notifications to trigger syncing. This is what apps like Fantastical and many others also do – essentially any app with its own “push” server can allow its app to wake up and sync in the background… Many of Google’s apps do this (e.g. Gmail, Inbox, etc), apps like Evernote do this, as do OF competitors such as Things.

Keep in mind that there are two ideas about whether OmniFocus is “running” on iOS or not. If you force-quit OmniFocus (e.g., bring up the app switcher and swipe it away), then push notifications and background app refresh may not work properly. However, if you’ve simply exited OmniFocus by tapping the home button, the app is still suspended in the background and hooked into iOS to receive push notifications and perform other background refresh tasks. As anders points out above, however, if you’ve toggled the “Background App Refresh” option OFF, then the app will not be able to do things in the background regardless of whether it’s iOS or a push notification triggering an action, and low battery conditions can also cause apps to not trigger a background app refresh, although merely being on cellular should not affect it as long as the app has cellular data access enabled (in the iOS Settings), of course.

5 Likes

Figured I ought to double back here and say this is all working wonderfully now. :)

4 Likes