Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.242 Home All releases olderv2.1.241 v2.1.243newer
Claude Code v2.1.242

Artifact wake subscriptions can be refused for a whole session

You'll notice
Useful2 Signal2
Artifacts

If artifact wake subscriptions are forbidden, Claude Code stops retrying for the session.

What

When the artifact service returns HTTP 403 for a wake subscription, Claude Code now latches that refusal for the rest of the session instead of retrying. Later publishes are not armed, auto-subscribes fail immediately with the reason subscribe_forbidden rather than touching the network, and only an explicit watch re-checks with the service. The latch is dropped if it was recorded with no relay active and a relay later comes up.

Details
  • A durable state field records the refusal along with the server's message and whether a relay was active at the time; this field does not exist in 2.1.241.
  • Two telemetry codes distinguish the first refusal from later suppressed attempts: subscribe_forbidden_latched and subscribe_forbidden_suppressed. Clearing the latch emits subscribe_forbidden as a clear event.
  • User-facing copy explains the state rather than showing a generic error.
  • Related in the same area: edits made through an MCP tool can now arm auto-reactions, tracked as an mcp_write arming source.
  • No client-side flag turns this on; it is entirely driven by the server's 403 response.
Evidence

"armed when this session edited the page through an MCP tool", The artifact service refuses wake subscriptions from this session, for any artifact until the session ends, so retrying will not help., subscribe_forbidden

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v2.1.242 →