---
title: HookForceClaimedError
description: "Thrown to a hook's awaiters when another workflow run takes its token over with experimental_force."
docs_index: /llms.txt
lastUpdated: 2026-10-21
type: reference
summary: Catch HookForceClaimedError when a run created with experimental_force took a hook token this run was waiting on.
related:
  - /docs/api-reference/workflow/create-hook
  - /docs/foundations/hooks
  - /docs/errors/hook-force-claimed
---

> For an index of all documentation, see [/llms.txt](/llms.txt).

`HookForceClaimedError` is thrown when awaiting a hook whose token another workflow run took over with [`createHook({ experimental_force: true })`](/docs/api-reference/workflow/create-hook#take-over-a-token-another-run-holds). The hook is disposed and receives no further payloads; the error names the run that now owns the token. See the [hook-force-claimed](/docs/errors/hook-force-claimed) error guide for how to react.

```typescript lineNumbers
import { createHook } from "workflow";
import { HookForceClaimedError } from "workflow/errors";

export async function channelWorkflow(channelId: string) {
  "use workflow";

  const hook = createHook<{ text: string }>({ token: `channel:${channelId}` });

  try {
    const message = await hook;
    return { message };
  } catch (error) {
    if (HookForceClaimedError.is(error)) { // [!code highlight]
      console.log(
        `Token "${error.token}" now belongs to run ${error.claimedByRunId}`
      );
      return { replacedBy: error.claimedByRunId };
    }
    throw error;
  }
}
```

## API signature

### Properties

### Static methods

#### `HookForceClaimedError.is(value)`

Type-safe check for `HookForceClaimedError` instances. Preferred over `instanceof` because it works across module boundaries and virtual machine contexts.

```typescript
import { HookForceClaimedError } from "workflow/errors"
declare const error: unknown; // @setup

if (HookForceClaimedError.is(error)) {
  // error is typed as HookForceClaimedError
}
```

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)