# Problem code `'hook-removed'`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts`, `tables/problems.json` and `services/onsite-scripter/scripts/contract-docs-what-to-do.json` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

A member of [`ProblemCode`](../api/ProblemCode.md) · stable · since 2.0.0

A frame hook threw on 3 frames in a row and the runtime removed it: recorded once, right after that third 'handler-threw', with `path` 'onFrame' and the function's `name`, when it has one, in `message`; never again for that hook. Its disposer then does nothing; call [`onFrame`](../api/Session.onFrame.md) again to run it.

## What to do

Fix the throw (see 'handler-threw') and call [`session.onFrame(callback)`](../api/Session.onFrame.md) again: the removed hook's disposer does nothing.

## Where the declaration names it

- [`Session.onFrame`](../api/Session.onFrame.md): A hook that throws on 3 frames in a row is removed ('handler-threw' each time, then 'hook-removed').

The set is open: handle a code you don't know (`'other'`).
