[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

  1. Within-block duplication: A single hook's additionalContext is concatenated with itself, appearing twice within one system-reminder
  2. 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"}]

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗