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 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.
- claude mcp add refused: managed settings, plugins only, Sume
Claude Code 2.1.284 refuses claude mcp add when managed settings limit MCP servers to plugins. What the Sume remote URL needs from your admin.
Written by Sume