Title: UserPromptSubmit hook returns mirrored Hebrew text and intercepts all chat messages

Resolved 💬 1 comment Opened Jun 4, 2026 by bazcomputers-jpg Closed Jul 8, 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?

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

  1. Create .claude/settings.json in a project with a UserPromptSubmit hook of type prompt
  2. Send any normal chat message in Claude Code
  3. Hook fires on every message and returns mirrored Hebrew error text
  4. 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_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗