Skip to main content

Graph notifications and subscription recovery

WebhookCatcher accepts Microsoft Graph notifications as durable synchronization hints. Delta reconciliation reads the canonical provider content. A processed provider result supports Sync Center confirmation. Complete Microsoft Graph setup first.

Callback configuration​

The public HTTPS hostname must reach this instance's WebhookCatcher and preserve the full path. InstantUserDataGetter is not the external webhook target.

CallbackPath
Change notification/graph/webhook
Lifecycle notification/graph/lifecycle

Set GRAPH_WEBHOOK_URL and GRAPH_LIFECYCLE_WEBHOOK_URL to this deployment's public host and matching path. Check restored configuration for another developer's tunnel hostname. Graph keys and certificates require separate setup.

The validation handshake returns its token separately. For notifications, HTTP 202 follows durable ingress storage. Persistence failure or a missed durability deadline returns 503 to request retry. Rejected deliveries can also remain as durable diagnostic evidence. An acknowledgement does not mean every notification passed trust checks or changed a message.

Renewal and retry​

GraphPullPoller checks subscriptions at startup and runs renewal cycles. Rich subscriptions request 23 hours. Routine recreation uses distributed scheduling between 7.5 and 8.5 hours.

An expired active subscription is due. An errored record waits until its saved retry time. Old expiry does not bypass backoff. Validated arrivals retain mailbox identity, subscription identity, and arrival time.

Diagnose missing changes​

A quiet mailbox can legitimately produce no notification. Inspect expiry, next renewal, tunnel reachability, and durable arrivals. If an arrival exists but the message stays stale, inspect delta processing and mailbox status.

After a configuration correction, use supported runtime commands to apply the scoped change while retaining data.