Delta Token Expiry on Microsoft Graph Mailbox Delta Query - No Documented TTL, Seeking Definitive Behavior #195861
Replies: 1 comment · 1 reply
-
|
Hi, A few important points:
Because of this, production systems at scale are usually designed assuming that:
To handle this reliably at scale, common strategies include:
For very large-scale systems, it is generally safer to architect around eventual token invalidation rather than relying on a stable long-term retention guarantee from the service. Hopefully Microsoft can provide more authoritative clarification, but currently the documentation intentionally seems to avoid guaranteeing a deterministic TTL. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
🏷️ Discussion Type
Question
Body
Hi,
I am going to use the Microsoft Graph Delta Query API to track incremental changes on Exchange Online mailbox folders on very large scale:
GET /users/{userId}/mailFolders/{folderId}/messages/delta?$deltaToken={token}
I am going to store the deltaToken per user-folder resource and reuse it on subsequent calls to fetch only changes since the last sync.
The Problem:
The official Microsoft documentation states that delta tokens can expire and that a 410 Gone response should be handled but nowhere in the documentation is an actual TTL or expiry window defined for mailbox delta tokens. There is no mention of whether the token is backed by a sliding window, a fixed TTL, or an internal server-side cache with an undocumented eviction policy.
What I specifically need to know:
What is the actual TTL or lifetime of a delta token for mailFolders/messages/delta? Is it fixed, sliding, or undefined?
Is the token backed by a server-side cache that can be evicted under memory or load pressure - independent of time? i.e., can a token expire not because of time but because of server-side resource constraints?
If there is genuinely no guaranteed TTL - meaning a token could expire at any point without a time bound - how should production systems handle this reliably at scale, given that a 410 on millions of resources simultaneously would cause a thundering herd of full re-syncs?
Beta Was this translation helpful? Give feedback.
All reactions