[Bug] Hook additionalContext injected multiple times in context pipeline
Resolved 💬 5 comments Opened Dec 17, 2025 by kylesnowschwartz Closed Jan 13, 2026
Bug Description
Bug Report: Hook additionalContext Duplicated in Context Injection
Summary
Hook additionalContext output is injected into Claude's context multiple times. This occurs regardless of plugin configuration and affects both SessionStart and UserPromptSubmit hooks.
Behavior
- Within-block duplication: A single hook's additionalContext is concatenated with itself, appearing twice within one system-reminder
- Cross-block duplication: Some hook outputs appear in multiple separate system-reminder blocks
Impact
- Wasted context tokens from duplicate content
- Multiple "hook succeeded" messages displayed at startup
- Potential for duplicate side effects
Not the Cause
- Explicit "hooks" field in plugin.json (tested with plugins that don't have it)
- Multiple plugin versions in cache (cleaned, still duplicates)
- Disabled plugins (verified only enabled plugins affected)
Related
Issue #10871 documents duplicate hook registration from explicit hooks field. This is different - the output injection pipeline is duplicating content even when hooks are registered correctly.
Environment
- Claude Code: v2.0.71
- macOS Darwin 24.6.0
Environment Info
- Platform: darwin
- Terminal: ghostty
- Version: 2.0.71
- Feedback ID: ce26c52b-b25e-46ed-b93c-55b57a2169a9
Errors
[{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/kyle/.local/share/claude/versions/2.0.71 (expected in multi-process scenarios)\n at hXR (/$bunfs/root/claude:2415:2165)\n at JKA (/$bunfs/root/claude:2415:1885)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-17T04:31:06.032Z"}]This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗