Skip to main content

Lab operations and troubleshooting

Use this guide for the separate local lab, not production mailbox recovery. Read configuration and prerequisites first.

Initial checks​

Check port 5090 and Diagnostics configuration/certificate state. Check the public HTTPS callback, remote subscription state, and execution state (SUCCEEDED, EXPIRED, or FAILED). Compare raw response with normalized events when a result looks wrong.

No webhook arrivals​

If subscription creation succeeds but call count stays unchanged, inspect the public callback and tunnel routing. Check subscription detail and expiry. Correct the callback, then create an appropriate replacement subscription. A private localhost route cannot receive Graph callbacks.

Expired delta execution​

If Continue or Replay reports an expired provider token, use New root. Treat that execution as a new baseline branch. Do not reinterpret it as continuation of the expired state.

Throttling or slow reads​

For 429/503 or slow whole-mailbox work, reduce the scope to a folder. Avoid concurrent broad runs. Honor retry guidance and retry after the indicated delay. The request helper bounds inline retries, so a long provider delay can require a later action.

Unexpected differences​

Check the selected parent execution, sparse-patch merge, and duplicate-removal count. A differ compares branch states, not global live mailbox state. Use data-model guidance.

Sensitive data​

Dashboard authentication is disabled. Keep the UI in a trusted development environment. The reveal endpoint can return full continuation URLs containing token material. Keep these values out of screenshots, shared reports, and public logs.

The lab database can contain raw requests and message content. Restrict access to it separately from the public webhook path.

Local checks​

From the lab directory, these scripts check code or open database inspection:

pnpm check
pnpm test
pnpm db:studio

pnpm test runs the repository's database-prepared workflow. Check its target environment before execution. Passing code checks do not prove public callback reachability or successful mailbox synchronization.

For routine inspection, read Diagnostics, inspect subscription health, execute the next scoped delta, and compare the differ. Replay and raw responses help investigate an unexpected result.