{"version":"2.1.289","anchor":"hooks-worker-hook-failed-handling-refactored","canonical_anchor":"hooks-worker-hook-failed-handling-refactored","heading":"Handling of failed plugin hooks reorganised","tier":"internal","area":"Plugin Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.289\/e\/hooks-worker-hook-failed-handling-refactored","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.289","markdown":"### Handling of failed plugin hooks reorganised\n\nThe code that marks in-progress work as failed when a plugin hook fails was moved into a shared helper; runaway-plugin shutdown is unchanged\n\n**Unclear.** It is not known whether the new helper changes what happens when a hook fails.\n\n**What**\n\nHooks are pieces of plugin code that Claude Code runs at set moments. When one fails, Claude Code marks that plugin as failed in every piece of work still in progress. That step now goes through a shared helper. Claude Code still counts a plugin that keeps ignoring its signal to stop and still shuts it down after too many times in a row.\n\n**Why**\n\nThe shutdown of runaway plugins works as before. Any other effect of the reorganisation is unknown.\n\n- Area: Plugin Hooks\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 0\/5\n- Scope: individual\n- Heads-up: no"}