Claude Code remote MCP backoff up to 30 s: retrying Sume safely
Headless Claude Code now backs off up to 30 s after remote MCP drops. A retried paid Sume call needs the same idempotency_key or you may pay twice.

Claude Code 2.1.295 (Oct 8) makes remote MCP connections in headless and SDK mode back off for up to 30 seconds after drops. On Sume, a drop after a paid create is not proof the create failed, so the retry must carry the same idempotency_key.
What changed?
The changelog says remote MCP in headless and SDK sessions now backs off up to 30 seconds after connection drops. It describes connection handling, not tool-call replay.
| Mode | Change |
|---|---|
| Headless / SDK, remote MCP | Backs off up to 30 s after drops |
What happens to the call that was in flight?
Unknown from the client side. The request may have reached Sume and created a job before the connection dropped. Sume's guidance for a timed-out submit is to retry with the same idempotency key so the retry returns the original job, and to poll a job you already have rather than submit again.
A retry checklist
Put these rules in the agent prompt:
- Generate one
idempotency_keyper intended render and reuse it on every retry of that create. - After a reconnect, call
jobs_listorjobs_getbefore any new create. - Treat
wait_slice_expiredfromjobs_waitas a scheduling fact, not a failed job. - Send
max_spend_usdeach time, because the cap is enforced only when sent.
How long can a wait outlast a backoff?
A jobs_wait slice is 50 seconds by default and at most 55, so a 30-second backoff plus a slice fits inside most CI step limits. A full render still takes many slices. See Jobs and results.
Sources
Related posts
More in Developers
- Claude Code closes ws MCP messages over 16 MiB: Sume sends URLs
Claude Code 2.1.295 closes a websocket MCP connection on a message over 16 MiB. Sume hosted MCP returns media.sume.com URLs for results, not file bytes.
- Claude Dynamic Workflows events vs Sume's single terminal run event
Anthropic's Oct 9 Dynamic Workflows beta streams workflow_run.* events. Sume sends one terminal webhook per run, no stream. How to fan out and track progress.
- Compare GET /v1/balance micros with a clip total, in integers
Balance comes as USD micros and cents. A 30 s Seedance 720p clip is 17,334,000 micros, 1,733 cents rounded down. Integer compare, plus the expiring-soon fields.
- Contract test for 1:4, 4:1, 1:8, 8:1: pytest on /v1/images/models
A 12-line pytest that fails CI if Sume stops listing the Nano Banana 2.1 strip ratios. It reads GET /v1/images/models, so it generates nothing.
Written by Sume