> ## Documentation Index
> Fetch the complete documentation index at: https://docs.narrative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Unknown Tool Choice Name

> tool_choice references a specific tool name that is not in the conversation catalog.

**HTTP status:** 400

## Error message

```
tool_choice references unknown tool name '{name}' — not found in the catalog
```

## When this error occurs

`tool_choice: { kind: "specific_tool", ... }` pins the model to a single tool on iteration
1 of the run. The platform validates that the named tool exists in the effective catalog
**before** kicking off the workflow — better to fail synchronously here than later as a
confusing Bedrock-side error inside the agent loop.

This error surfaces when either:

* `mcp_alias` is absent and `name` doesn't appear in caller-declared `tools[]`.
* `mcp_alias` is present (and the alias is registered), but `name` doesn't appear in that
  MCP server's declared `tools[]`.

## How to fix

Make sure `tool_choice.name` matches the catalog exactly:

```json theme={null}
// Caller-declared target
{ "kind": "specific_tool", "name": "confirm_booking" }

// MCP-pinned target
{ "kind": "specific_tool", "mcp_alias": "docs", "name": "search_kb" }
```

If you only know the wire form (`docs-search_kb`), split it: prefix before the first dash
becomes `mcp_alias`, suffix becomes `name`.
