{"version":"2.1.295","anchor":"plugin-hook-runstool-failure-message-and-fields-changed","canonical_anchor":"plugin-hook-runstool-failure-message-and-fields-changed","heading":"Plugin hooks cannot rewrite a tool call whose location is unknown","tier":"notice","area":"Hooks","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.295\/e\/plugin-hook-runstool-failure-message-and-fields-changed","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.295","markdown":"### Plugin hooks cannot rewrite a tool call whose location is unknown\n\nIf the plugin hook runner cannot tell where a tool call runs, Claude Code now refuses a hook's rewritten input for that call\n\n**Unclear.** Whether plugin hooks still receive the tool's response in this case is not stated.\n\n**What**\n\nPlugins can add hooks, which are small programs that run before or after Claude Code uses a tool and can change the tool's input. Sometimes the part that runs these hooks cannot tell where a tool call will run. In that case Claude Code now:\n\n- logs \"the plugin hook runner could not say where a tool call runs\".\n\n- treats the call as one belonging to the current Claude Code process.\n\n- refuses any changed input a hook tries to substitute.\n\n- no longer returns the tool's response in that result.\n\n**Why**\n\nThis makes it harder for a plugin hook to change a tool call when Claude Code cannot confirm where the call will run.\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: yes"}