Some of our intents involve initiating local-to-remote database synchronization (e.g., syncing local memory metrics to a remote MongoDB instance). This operation can take between 5 to 15 seconds depending on network conditions.
What are the strict execution timeout limits for App Intents running in the background on macOS and iOS (especially when triggered via Siri without active UI)? If the operation exceeds the default limit, will Siri forcefully terminate the intent? How can we request background execution extension or hand off the work to a background download session/daemon while reporting progress back to Siri in real-time? Does the system support asynchronous yielding (Progress) so Siri can display a progress bar or status updates (e.g., 'Syncing 50%... Done') during execution?
Long-running tasks like syncs are exactly the case LongRunningIntent was introduced for.
App intents generally have 30 seconds to run on most Apple platforms (macOS has no fixed time limit). However, Siri may also enforce its own time limits on how long it'll wait for an intent's result.
A 5–15 second sync fits inside the time budget on the happy path, but variable network conditions can push you past 30s.
Adopting LongRunningIntent would be a great option to extend execution time beyond 30s. You'll also get a system-managed Live Activity for the duration of the sync, which will be visible on the Lock Screen and Dynamic Island so the user knows it's still running.
You don't need to author the Live Activity yourself; the system drives it from the progress you report.
I'd also recommend pairing this with CancellableIntent so you receive a cancellation reason (.timeout, .userCancelled, .unknown) and a small grace window to flush partial state, mark the sync resumable, and roll back any half-applied remote write.
That's what keeps a half-finished sync recoverable on the next run instead of leaving things inconsistent.
To learn more, check out the "Extend execution with LongRunningIntent" chapter of WWDC26 session, Discover new capabilities in the App Intents framework.