[Bug] Thinking blocks in resumed conversations cannot be modified, permanently breaking session

Resolved 💬 2 comments Opened May 28, 2026 by kmpeeduwee Closed Jun 1, 2026

Bug Description
400 thinking blocks cannot be modified permanently breaks a resumed conversation

Resuming a specific conversation always fails with:
API Error: 400 messages.43.content.7: thinking or redacted_thinking blocks in the latest assistant message cannot be modified. These blocks must remain as they were in the original response. Every new message in that session reproduces the error, so the conversation is permanently stuck. Other/new conversations work fine.

Context:

  • Model: Opus 4.8 (1M context), extended/adaptive thinking enabled
  • The error points at an assistant message containing a thinking block that is apparently not re-sent byte-for-byte on resume.

Expected:
Claude Code should preserve thinking blocks unmodified across resume/compaction, or safely drop them, so the conversation stays usable.

Actual:
The session is bricked — no message can be sent.

Repro (suspected):

  1. Have a conversation with extended thinking on Opus.
  2. Trigger a resume / context compaction / model or thinking-setting change / interrupted response mid-thinking.
  3. Send a new message → 400 error, repeats forever.

Environment Info

  • Platform: linux
  • Terminal: ghostty
  • Version: 2.1.154
  • Feedback ID: 64b197a2-aca1-4137-a9e1-df455b173e43

Errors

[API Error: 400 messages.43.content.7: `thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified. These blocks must remain as they were in the original response.]

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗