## TL;DR
Never block on a compliance recheck; poll with backoff, a deadline, and status updates. Trigger the sync, poll the compliance state on a schedule, tell the user what is happening while waiting, and close the loop with a clear outcome at the deadline.

## Steps
1. Trigger the device sync or compliance re-evaluation and record the start time.
   Expected: The wait has a defined beginning.
2. Poll the compliance state with increasing intervals up to a documented deadline.
   Expected: The agent does not hang forever.
3. Post interim status to the ticket so the user knows the check is in progress.
   Expected: The ticket shows progress, not silence.
4. At the deadline, report the final state or escalate with the evidence gathered.
   Expected: The ticket always reaches a conclusion.

## When to use
- The agent waits on Intune compliance, sync, or app install status
- Tickets stall with no updates during long waits
- Runs time out and lose their place

## When not to use
- The operation completes in seconds
- A webhook notifies on completion (use the event instead)
- A human monitors the wait

## Why this happens
Compliance re-evaluation is asynchronous and can take tens of minutes; an agent that blocks on it either times out or holds a run hostage. The ticket meanwhile shows nothing, so the user assumes the agent died.

## Edge cases
- The deadline should reflect the real SLA for the check, not an arbitrary timeout.
- Persist the poll state so a restarted run resumes the wait instead of starting over.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_Us5QsRma1lKRXf4Dw8BRxg
