Vercel AI SDK chunkMs timeouts and a 55 s Sume jobs_wait
ai@7.0.136 stops chunkMs and firstChunkMs when the model response ends. stepMs still covers the step, so size it for a Sume jobs_wait slice of up to 55 s.

Vercel's ai@7.0.136 stops the chunkMs and firstChunkMs timers when the model response ends, so a slow local tool no longer trips an output timeout. stepMs still covers the whole step, so if a tool in the step calls Sume's jobs_wait, which holds up to 55 seconds, set stepMs above that.
What does the release say?
The release note states the timers stop when the model response ends so long-running local tools do not trigger output timeouts, that stepMs still covers the whole step, and that each retry gets fresh budgets.
| Timeout | Behavior in 7.0.136 |
|---|---|
| chunkMs | Stops when the model response ends |
| firstChunkMs | Stops when the model response ends |
| stepMs | Still covers the whole step |
| Retries | Each retry gets fresh budgets |
How long is a Sume wait?
On hosted MCP, jobs_wait defaults to 50 seconds and is capped at 55. A larger timeout_seconds is clamped and reported in wait_slice_clamped. When the slice ends with wait_slice_expired, the job is still running, and you call the wait again.
What should you set?
Work from the slice, not from the render:
stepMsabove the longest slice you plan, 55 seconds, plus model time.- A loop or several steps for the full render. Do not raise one step to many minutes.
- The same
idempotency_keyon any retried create. A retry from the SDK gets fresh time budgets, not a fresh job.
What about the overall deadline?
Keep a client-side deadline for the whole job, 20 minutes for video is a reasonable ceiling in the docs example. A client timeout does not cancel the job; it keeps running and billing. See Jobs and results.
Sources
Related posts
More in Developers
- Verify a Sume video callback signature in Python, empty secret refused
A short stdlib Python check for x-sume-webhook-signature on a /v1/videos callback: HMAC SHA-256 over timestamp.raw_body, rotated sume-v1 entries accepted.
- Verify a Sume webhook in Python with the standard library only
Check the sume-v1 HMAC in Python without a package: raw body, timestamp window, two signatures during rotation, and a refusal of an empty secret. 20 lines.
- The resolution enum has 8 values, but each Sume model takes 3 or 4
The /v1/videos resolution enum lists 360p to 4K. Wan, Seedance, H3, H3 Max and Omni each take a subset. Check supported_resolutions and what each extreme costs.
- Sume /v1/videos says cancelled, /v1/jobs says canceled: a status map
Two spellings and two vocabularies for the same Sume job: pending to cancelled on /v1/videos, queued to canceled on /v1/jobs. A table and a TypeScript mapping.
Written by Sume