Jan MCP tool call timeout of 30 seconds vs Sume jobs_wait
Jan times out MCP tool calls after 30 seconds by default, while a Sume jobs_wait slice can run 50 to 55 seconds. How to set them so a render never looks failed.

Jan's tool call timeout defaults to 30 seconds, and Sume's jobs_wait holds a request for 50 seconds by default and at most 55. If you leave both alone, a wait that would have returned at second 45 gets cut off by Jan first.
The fix is either to raise Jan's timeout above 55 seconds or to pass a shorter timeout_seconds to jobs_wait. Neither is risky, because a timeout on the client never cancels the job.
What is Jan's timeout setting?
The Jan MCP page lists a tool call timeout: the maximum time in seconds to wait for an MCP tool response before timing out, defaulting to 30 seconds. It sits in the same settings area as the option to auto-approve all MCP tool calls.
How long does a Sume wait last?
The jobs and results page says remote MCP timeout_seconds defaults to 50 and is capped at 55. Larger values up to 600 are accepted and clamped, and the response notes it in wait_slice_clamped. A wait returns the moment its job is terminal, so only slow jobs use the whole slice.
The reason for the cap is that a longer held request is closed by an edge with a transport failure, and the caller then gets no tool result while the job keeps running and billing.
| Setting | Value | Where |
|---|---|---|
| Jan tool call timeout | 30 s default | Jan MCP settings |
jobs_wait default | 50 s | Sume remote MCP |
jobs_wait cap | 55 s | Sume remote MCP |
| Jobs per batch wait | 1 to 20 ids | Sume job_ids |
Which side should you change?
Raise Jan's timeout to 60 or more, so Sume's slice always answers first. If you would rather not touch Jan's settings, tell the assistant to call jobs_wait with timeout_seconds of 25. It will simply wait again when the answer is wait_slice_expired.
Either way, the instruction to give the assistant is the same: on a timeout or wait_slice_expired, call jobs_wait again on the same ids. Never repeat the paid create.
What if the tool call times out on the paid create?
Paid creates return a job quickly; the wait is what takes time. If a create call itself is cut off, reuse the same idempotency_key on the retry, which is what the key is for, or look the job up with jobs_list before submitting again. For a fan-out, prefer one batch jobs_wait with job_ids and wait_for set to all over many single waits.
What does a good instruction to the assistant look like?
Put the rule where the assistant will see it, in the system prompt or the first message of the chat: submit the paid create once with a stable idempotency_key, write down the returned job id, then call jobs_wait with that id and timeout_seconds of 25. If the result is wait_slice_expired, call jobs_wait again. If the tool call itself timed out, call jobs_status once, then wait again.
For image jobs there is a hint in the docs: an image still running at 50 seconds is usually stuck rather than slow. Video and music take longer and are the reason repeated waits exist.
What does a timeout cost you?
Nothing by itself. A client timeout abandons the request, not the job. The job keeps running and keeps its hold on your balance until it finishes, and the result is available by id afterwards. The only way to lose money to a timeout is to submit the paid create a second time with a new key, which creates a second job.
Sources
Related posts
More in Developers
- Does a canceled Sume job send a webhook? Jobs do, runs do not
A canceled generation job delivers job.canceled with status ERROR, but a canceled or skipped Format, Action or Agent run sends no webhook. Handle both paths.
- Sume job error category quota or queue vs 402 and 429
A Sume job error category quota means add funds or lower cost; queue means retry with the same key. They sit on the job, apart from 402 and 429 at submit.
- Sume job failed with worker_timeout: poll again or retry?
A Sume job error in the worker_timeout or generation_timeout category means poll status or retry later. runtime_unavailable means retry later, gently.
- Sume job metadata on Kling motion control and H3 Max lip sync
Both Kling 3.0 Motion Control and MiniMax H3 Max Lip Sync accept a metadata object stored with the Sume job request. It is not sent to the provider.
Written by Sume