VoltAgent MCP 30000 ms default timeout vs Sume jobs_wait
VoltAgent's MCP timeout defaults to 30000 ms; Sume's jobs_wait holds 50 to 55 seconds. Raise it past 55000 and re-wait on wait_slice_expired.

VoltAgent's docs give each MCP server an optional timeout in milliseconds with a default of 30000, and an example that sets 15000. Sume's jobs_wait holds one call for 50 seconds by default and 55 at most, so with the default timeout a wait on a render that is still running can outlast VoltAgent's limit. Set timeout above 55000, for example 60000, on the Sume entry.
Read on 2026-10-06: VoltAgent's MCP docs and Sume's Jobs and results.
What is the right wait pattern?
Do not request a longer wait; the hosted server clamps timeout_seconds to 55 and reports it in wait_slice_clamped. Wait in slices instead: call jobs_wait, and when it returns wait_slice_expired, call it again with the same ids. Sume's docs say a ten-minute render is waited out by repeating the call.
- Store the job id from the create response before the first wait.
- Never resubmit the paid create because a wait ended; reuse the same
idempotency_keyif the create itself must be retried. - Treat a
524,522,523or525onjobs_waitas transport, not as a job result. - Call
disconnect()on the configuration only when you are done; Sume jobs keep running after a disconnect.
Who decides when to stop?
The model loops on jobs_wait, so cap the loop in your agent: a step limit or a total time budget. A job that runs past your budget is still running and billing; cancel it with jobs_cancel while it is before generation, since Sume's docs say cancellation succeeds only before generation work starts.
Sources
Related posts
More in Developers
- waitForJob on a failed Sume image job: read the record, skip /result
waitForJob resolves for failed and canceled jobs instead of throwing, and /result returns 409 job_not_completed for them. How to branch on job.status.
- waitForJob onStatus also fires on the terminal poll: Sume SDK
In @sume-com/sdk, onStatus runs on every status read, including the last one. Use it for progress and take the result from the job waitForJob returns.
- waitForJob pollInterval is a floor: Sume's hint can only lengthen it
Lowering pollInterval in waitForJob does not poll faster than the server asks. The SDK takes the larger of your interval and next_poll_after_seconds.
- Wan 3.0 lists 20 references; Sume caps 10 images, 5 videos, 5 audio
Wan 3.0's own page says up to 20 reference assets. Sume splits that into 10 images, 5 videos and 5 audio clips. Validate a request offline in Python first.
Written by Sume