[Bug] Intermittent malformed tool-call emission with corrupted "court" prefix delimiter
Bug Description
Intermittent malformed tool-call emission — spurious court + <invoke> prefix stalls the turn.
Intermittently a tool call is emitted with a corrupted opening delimiter: a literal court prefix followed by an XML-style <invoke name="..."> tag, instead of the real function-call token. The harness doesn't parse it — it prints the block as plain text and the turn stalls (no tool runs). The user must nudge; re-emitting the byte-identical call then executes fine.
- Not content-dependent: same Bash/PushNotification/Monitor call, re-emitted, works.
- Ruled out project causes: no hooks, no env overrides in ~/.claude/settings.json.
- Seen across Bash, Monitor, PushNotification in one session; ~6+ occurrences over a multi-hour run.
- Impact: silently stalls autonomous/long-running loops until manual intervention.
Env: Claude Code 2.1.200 · model claude-opus-4-8 (Opus 4.8, 1M) · Linux 6.17.
Expected: every tool call emitted with the correct delimiter and executed deterministically.
Environment Info
- Platform: linux
- Terminal: vte-based
- Version: 2.1.197
- Feedback ID: 298cf213-a292-42f1-9ba8-12e1a615e3e7
Errors
[]This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗