Community-reported workarounds for current Claude Code bugs that can affect ECC users.
These are upstream Claude Code behaviors, not ECC bugs. The entries below summarize the production-tested workarounds collected in issue #644 on Claude Code v2.1.79 (macOS, heavy hook usage, MCP connectors enabled). Treat them as pragmatic stopgaps until upstream fixes land.
Symptoms: Hook runs successfully, but Claude Code still shows Hook Error in the transcript.
What helps:
- Consume stdin at the start of the hook (
input=$(cat)in shell hooks) so the parent process does not see an unconsumed pipe. - For simple allow/block hooks, send human-readable diagnostics to stderr and keep stdout quiet unless your hook implementation explicitly requires structured stdout.
- Redirect noisy child-process stderr when it is not actionable.
- Use the correct exit codes:
0allows,2blocks, other non-zero exits are treated as errors.
Example:
# Good: block with stderr message and exit 2
input=$(cat)
echo "[BLOCKED] Reason here" >&2
exit 2Symptoms: Lowering CLAUDE_AUTOCOMPACT_PCT_OVERRIDE causes compaction to happen sooner, not later.
What helps:
- On some current Claude Code builds, lower values may reduce the compaction threshold instead of extending it.
- If you want more working room, remove
CLAUDE_AUTOCOMPACT_PCT_OVERRIDEand prefer manual/compactat logical task boundaries. - Use ECC's
strategic-compactguidance instead of forcing a lower auto-compact threshold.
Symptoms: Gmail or Google Drive MCP tools fail after compaction even though the connector still looks authenticated in the UI.
What helps:
- Toggle the affected connector off and back on after compaction.
- If your Claude Code build supports it, add a
PostCompactreminder hook that warns you to re-check connector auth after compaction. - Treat this as an auth-state recovery step, not a permanent fix.
Symptoms: Changes to settings.json hooks do not take effect until the session is restarted.
What helps:
- Restart the Claude Code session after changing hooks.
- Advanced users sometimes script a local
/reloadcommand aroundkill -HUP $PPID, but ECC does not ship that because it is shell-dependent and not universally reliable.
Symptoms: Claude Code starts failing under high hook/tool/context pressure.
What helps:
- Reduce tool-definition pressure with
ENABLE_TOOL_SEARCH=auto:5if your setup supports it. - Lower
MAX_THINKING_TOKENSfor routine work. - Route subagent work to a cheaper model such as
CLAUDE_CODE_SUBAGENT_MODEL=haikuif your setup exposes that knob. - Disable unused MCP servers per project.
- Compact manually at natural breakpoints instead of waiting for auto-compaction.
- hooks/README.md for ECC's documented hook lifecycle and exit-code behavior.
- token-optimization.md for cost and context management settings.
- issue #644 for the original report and tested environment.