Title: UserPromptSubmit hook returns mirrored Hebrew text and intercepts all chat messages
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?
Additional Impact
The malfunctioning hook consumed tokens and time on every intercepted message,
since each message triggered the hook evaluation before failing.
Users are billed for these wasted API calls with no useful output.
This is a financial impact, not just a UX issue.
What Should Happen?
"The hook should have either passed the message through silently, or blocked it with a clear error — not consumed tokens and returned garbled mirrored text
"The hook should have either passed the message through silently or returned a clear, readable error. Instead, it intercepted every message — including normal chat — consumed tokens on each one, and returned garbled mirrored Hebrew text with no useful information. This resulted in wasted API costs and made the tool completely unusable."
"Expected behavior: hooks should only fire on the specific conditions they're configured for, not on every single user message regardless of context."
"Is there a way to get a refund for the tokens wasted due to this bug?"
Error Messages/Logs
Steps to Reproduce
- Create
.claude/settings.jsonin a project with aUserPromptSubmithook of typeprompt - Send any normal chat message in Claude Code
- Hook fires on every message and returns mirrored Hebrew error text
- All subsequent messages are also intercepted — tool becomes unusable
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude Sonnet 4.6
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗