## TL;DR
Zoom generates usage reports asynchronously, so the agent must poll the report status with a generous timeout instead of treating the download as synchronous. Download only when the status is complete, and fall back to the dashboard usage API if reports keep timing out.

```text
agent timed out waiting for Zoom usage report download, run failed
```

## Use this when
- An agent times out downloading a Zoom usage report.
- The report generation takes longer than the agent waits.
- The download works sometimes but not reliably.

## Not for this skill when
- The API auth fails. Fix credentials.
- The report never generates. Check the Zoom account state.
- The agent needs real-time numbers. Reports are always delayed.

## Steps
1. Trigger report generation and capture the report identifier. Verify: generation is acknowledged.
2. Poll the report status with backoff, allowing up to 30 minutes. Verify: the poll loop has a sane ceiling.
3. Download only when the status reads complete. Verify: the file is whole.
4. If reports keep timing out, fall back to the dashboard usage API for paged pulls. Verify: the fallback returns data.
5. Confirm the usage data arrives in full. Verify: row counts look complete.

## Variant phrasings
### Zoom report timeout
The short phrasing.
### usage report download failed
The symptom-first search.
### agent timed out Zoom
The agent-first phrasing.

Compatibility: Zoom report and dashboard APIs, any agent runtime.

## Why it happens
Report generation is a background job on Zoom's side. Agents that request the download immediately race the generation and time out; the status endpoint exists precisely for this wait.

## Edge cases / pitfalls
- Huge tenants where reports take hours; extend the ceiling or use the API.
- Polling too aggressively and hitting Zoom's own rate limits; back off.
- The report expiring before download; download promptly once complete.
- The agent's total runtime budget; fail over to the API early rather than burning the whole budget polling.

## Provenance

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