Claude Code background Bash 30-minute limit and Sume jobs
Claude Code 2.1.285 stops background Bash after 30 minutes by default (2 h max). A Sume render is a job id, so poll it with jobs_wait slices, never resubmit.

Claude Code 2.1.285 stops a background Bash or PowerShell command when its timeout runs out; with run_in_background the default is 30 minutes and the maximum is 2 hours. A Sume render does not live in that shell. It is a job with an id, so a stopped shell loses your wait, not the job: poll the id with jobs_wait or GET status_url.
Vendor line from the Claude Code changelog and Sume behavior from Jobs and results, both read 2026-10-01.
What does the new limit stop?
The changelog says Claude is notified when a background command is stopped. That covers a shell loop you wrote to sleep until a file appears. It says nothing about work running on a remote service.
How long does one jobs_wait call block?
Not long. On remote MCP, timeout_seconds defaults to 50 and is capped at 55; larger values up to 600 are accepted and clamped, and the response reports wait_slice_clamped. The docs explain why: a wait is one open HTTP request, and every edge closes such a request eventually. So you repeat short waits instead of one long one.
| Mechanism | Bound in the docs |
|---|---|
jobs_wait timeout_seconds (remote MCP) | default 50, capped at 55 |
REST sync mode | wait_timeout_seconds max 30 |
| REST polling | follow next_poll_after_seconds when present |
What should a long wait look like?
Keep the job id, call jobs_wait in slices, and stop when the job is terminal. If a slice returns not terminal, poll again; do not resubmit, because a repeated paid create is a second billed job. A background shell is optional here: the loop can be the agent's own repeated tool calls. For the MCP side, see jobs_wait for long video jobs.
Do I need to raise the shell timeout?
Only if you run your own script around the REST API. Set its timeout above your longest expected poll loop, up to the 2-hour maximum, and make the script exit cleanly when the job is terminal.
Sources
Related posts
More in Developers
- Claude Code Bedrock/Vertex MCP 2026-07-28 default vs Sume
Claude Code on Bedrock, Vertex and Foundry now negotiates MCP 2026-07-28 by default. The opt-out env vars, and the versions the Sume server accepts.
- Claude Code headless MCP auth reminder: Sume key vs OAuth expiry
Claude Code 2.1.286 fixed a repeated MCP auth reminder in headless runs. Sume OAuth tokens last one hour with no refresh, so unattended runs should use a key.
- Claude Code MCP OAuth token lost, keychain locked: Sume tokens
Claude Code 2.1.281 stops a locked macOS keychain from dropping stored MCP OAuth tokens. A Sume token lasts one hour with no refresh grant.
- CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH and Sume server instructions
Claude Code 2.1.280 lets CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH change the 2,048-character cap. Sume's instructions are long; use tools_schema.
Written by Sume