Pagination, limits and errors¶
Pass nextCursor into the next call. Do not calculate offsets, modify the cursor or reuse it for another meeting. Deduplicate by ID when resuming; load another page near the end of scrolling.
let cursor;
do {
const page = await elo.request('transcript:read', { cursor });
await processPage(page.entries); // render/persist one page at a time
cursor = page.nextCursor || undefined;
} while (cursor);
Stop when the cursor is null. Live meetings expose already synchronized data, not future speech.
| Situation | Next step |
|---|---|
| 400 | Correct JSON, fields or limits; do not retry identical invalid input |
| 401 | Request a new session grant and retry with current authorization |
| 403 | Check installation, approval, audience, ownership and scope |
| 404 | Verify IDs; never show another resource as fallback |
| 402 on capture | Existing data stays available; resolve billing in the dashboard |
| Network / 5xx | Show an error and offer bounded manual retry |
| SDK timeout (30 s) | Clear loading and inspect iframe/host |
Avoid unbounded retries for writes: a response can be lost after saving the note. The current notes API does not offer an idempotency key. Block duplicate submissions and check results before retrying.