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.
| 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 |
| 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 |