[BUG] Bash tool call rendered as raw XML instead of executing
Resolved 💬 3 comments Opened May 21, 2026 by HossyKoki Closed Jun 21, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
During a Claude Code session, Bash tool calls were rendered in the chat as raw XML-like text instead of being executed.
For example, the assistant displayed text like:
<invoke name="Bash">
<parameter name="command">git status --short; echo "--- DIFF cli.py ---"; git diff ...</parameter>
<parameter name="description">gitの現状態確認</parameter>
</invoke>
A later response also displayed:
<invoke name="Bash">
<parameter name="command">git add .company/automation/skills/lsp-lsr-updater/lsp_lsr_updater/cli.py</parameter>
<parameter name="description">cli.pyをステージング</parameter>
</invoke>
These looked like tool calls, but they were shown as normal assistant text. The commands did not appear to run, and the workflow became confusing/stuck.
This is not only a cosmetic rendering issue. It creates a false execution state: the UI shows what looks like a Bash invocation, but the command does not run. Subsequent assistant behavior may then proceed as if git status/diff/add or other operations were completed, causing downstream workflow errors.
### What Should Happen?
Claude Code should either execute the Bash tool call normally, or show a normal tool/error state if execution is unavailable.
It should not render internal/tool-call syntax such as `<invoke name="Bash">` / `<parameter name="command">` as assistant message text.
### Error Messages/Logs
```shell
No stack trace was shown.
Observed raw assistant output included XML-like tool calls such as:
<invoke name="Bash">
<parameter name="command">git status --short; echo "--- DIFF cli.py ---"; git diff ...</parameter>
<parameter name="description">gitの現状態確認</parameter>
</invoke>
and:
<invoke name="Bash">
<parameter name="command">git add .company/automation/skills/lsp-lsr-updater/lsp_lsr_updater/cli.py</parameter>
<parameter name="description">cli.pyをステージング</parameter>
</invoke>
After manually checking the repository, the referenced cli.py diff/staged change was not present.
Steps to Reproduce
- Open Claude Code in a local git repository on Windows.
- Ask Claude to inspect git status/diff and stage a file.
- Observe that instead of a Bash tool execution UI, the assistant message renders raw XML-like text such as
<invoke name="Bash">. - Check the repository manually with
git status --shortandgit diff. - The command shown in the raw XML text did not appear to have executed.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unknown
Claude Code Version
2.1.140
Platform
Other
Operating System
Windows
Terminal/Shell
Other
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗