Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.299 ·

cancel_async_message can now be declined for a re-run of an interrupted turn

SDK cancels of a queued re-run that also answers other clients' messages are now declined until an interrupt lists the message

Group of 2 You'll notice No documentation found Improvements
JSON All of v2.1.299
You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
SDKArea: what it touches
ImprovementsKind: in v2.1.299,
ImprovementsSection of the release

What

cancel_async_message is a request that programs using the Claude Code SDK (the kit for running it from other software) send to cancel a queued message. A turn is one round of Claude answering. The SDK documentation now describes a new case:

  • When the message's uuid (its unique id) belongs to a queued re-run of an interrupted turn that also answers for other client messages, the cancel does nothing and returns cancelled=false. This applies on a worker that recognises held messages.
  • The cancel is accepted once an interrupt for that re-run has listed the uuid under still_queued. The other messages are then cancelled with it.

Before, cancelled=false only meant the message was no longer in the queue, and the only documented no-op was a message already taken off the queue to run.

Why

If you build on the SDK, a declined cancel no longer always means the message already left the queue. In this case it may still be waiting, and you need an interrupt that lists it under still_queued before the cancel takes effect, which also cancels the other messages it answers for.

Read from
Names in the bundlecancel_async_message

See this entry in the whole of v2.1.299 →

Feedback