# LeadTap.me MCP error codes

> LeadTap.me MCP tools never throw; they return isError true with an error code. NOT_FOUND, FEATURE_LOCKED, LIMIT_REACHED, INVALID_DRAFT, OVERLAPPING_SLOTS, QR_DISABLED, QR_LIMIT_REACHED, BAD_URL, INSUFFICIENT_SCOPE, INTERNAL_ERROR, plus HTTP 401 and 429.

Source: https://docs.leadtap.me/mcp/errors/ · Last updated: 2026-10-09

A LeadTap.me MCP tool never throws: it returns `isError: true` with a JSON body `{ "error": { "code", "message", "details"?, "upgrade"? } }`. The code says what happened and the extra fields say how to fix it.

## Tool error codes

| Code | When | Extra fields |
|---|---|---|
| `NOT_FOUND` | The id or email does not exist on this account, or the webhook is not of the kind the tool handles (a page webhook given to `update_crm_webhook`, or the CRM webhook or another page's webhook given to `update_page_webhook`) | — |
| `FEATURE_LOCKED` | The plan does not include the feature (for example, webhooks or smart routing on Free) | `upgrade`: link to change plan |
| `LIMIT_REACHED` | A plan quota is used up (for example, live lead pages) | `upgrade`: link to change plan |
| `INVALID_DRAFT` | `save_form_draft` found problems; nothing was saved | `details`: the list of issues to fix and resend |
| `OVERLAPPING_SLOTS` | `set_smart_routing` got two links sharing a minute | `details`: the exact conflicts |
| `QR_DISABLED` / `QR_LIMIT_REACHED` | `create_qr_code` with no bought QR code left | `purchaseUrl`: where to buy a pack |
| `BAD_URL` | A tool that creates or updates a CRM or page webhook got a URL that is not https, not on a public host, or has credentials in it | — |
| `INSUFFICIENT_SCOPE` | A write tool called with a read-only authorization | — |
| `INTERNAL_ERROR` | Something unexpected failed on the server | `requestId`: give it to support |

## HTTP errors before any tool runs

| Status | When |
|---|---|
| `401` | No valid credential. The `WWW-Authenticate` header points at the protected resource metadata, which starts the OAuth flow. A revoked, expired or foreign token gets the same answer |
| `429` | More than 60 calls in a minute for one credential. Wait the seconds in `Retry-After` |

## Related pages

- [Plans and limits](https://docs.leadtap.me/mcp/plans/)
- [Authentication](https://docs.leadtap.me/mcp/authentication/)
