Gemini last_event_id stream resume vs Sume: no SSE, poll status_url
Gemini background interactions can resume a dropped stream from the last event. Sume has no stream to resume: poll status_url and read events_url snapshots.

Gemini's background execution lets a client reconnect to a dropped stream by passing the last received event id. Sume has no stream to reconnect to: there is no SSE or WebSocket transport on the Developer API today. To pick up a job after a disconnect, call GET status_url again.
Sources: the Gemini background-execution page and Sume's Jobs and results, read 2026-10-01.
How does Gemini resume a stream?
The page says standard HTTP requests typically close after 60 seconds, so a background interaction returns an id that you can poll, stream, or reconnect to. Each streamed delta carries a unique event id; passing the last one back resumes the stream from that event.
What replaces that on Sume?
Polling. GET /v1/jobs/:id/events is a pull snapshot, not a stream, and progress comes from polling events_url, which returns a phase timeline. Status comes from status_url, which returns terminal, result_ready and, when present, next_poll_after_seconds.
| Need | Gemini background interaction | Sume job |
|---|---|---|
| Check state | Poll the interaction id | GET status_url |
| Live progress | Stream deltas | Poll events_url (phase timeline) |
| Resume after drop | Pass the last event id | Nothing to resume; poll again |
What if my client crashed mid-wait?
Keep the job id. Every mode returns it in the first response, so a restarted client can poll the same job. Do not submit a new paid job for the same intent; the docs allow retrying a submit only with the same Idempotency-Key. See this recovery guide.
How often should I poll?
Honor next_poll_after_seconds when it is present and back off otherwise. Poll on the booleans terminal and result_ready, or on sume_status, but do not mix the queue-shaped status field with it. If you would rather be told, use mode: "webhook" and keep polling as a backup.
Sources
Related posts
More in Developers
- Omni 1.1 Flash start and end frame API on Sume
Omni 1.1 Flash can render between two keyframes, including looping clips. On Sume, Omni takes image_url plus end_image_url; frame_images covers other models.
- Gemini Omni previous_interaction_id vs a Sume job per request
Google chains Omni 1.1 Flash extensions with previous_interaction_id. Sume has no such field: each request is its own job, and an edit takes a video_url.
- Gemini Omni videos over 4MB: poll to ACTIVE vs a Sume result URL
Gemini Omni returns large videos as a URI you poll until ACTIVE. Sume results are durable media.sume.com URLs with no ACTIVE state and no expiry to manage.
- Gemini Omni Flash has no temperature, top_p or negative prompt
Gemini Omni Flash has no system instructions, temperature, top_p, stop sequences or negative prompts. Put negatives in the prompt; Sume has no such fields.
Written by Sume