Skip to main content

CRM error codes (mpbx-crm)

Raised by the CRM integration routes under /api/v1/integrations/crm (W7-INT-01a). Messages never contain a credential, a request URL or a CRM's answer; they name ids, field names, rules, status codes and machine codes at most. Guide: CRM templates.

CodeHTTPMeaningWhat to do
MPBX-CRM-NOT-FOUND404No such integration in this company (another company's integration is invisible).Check the id.
MPBX-CRM-JOB-NOT-FOUND404No such journal job in this company, or it was purged (done jobs are kept 7 days, dead ones 30 days).Check the id.
MPBX-CRM-TEMPLATE-INVALID400The template text is not valid. The message lists the first five issues with their place in the document; POST /integrations/crm/validate lists all of them.Fix the template; see the guide.
MPBX-CRM-NAME-TAKEN409Another integration of the company has this name.Choose another name.
MPBX-CRM-FIELD-INVALID400A field is out of range: name (1 to 80 characters), a credential the template does not declare or whose value is empty, longer than 4096 bytes or has control characters, a test variable the operation does not have or of the wrong type, a lookup number that is not 3 to 20 digits (optionally with a leading +), a search query of 2 to 100 characters or a limit outside 1 to 20.Fix the named field.
MPBX-CRM-CHANGED409The integration changed between your read and your write.Read it again and retry with the new ETag.
MPBX-CRM-LIMIT-REACHED409The company already has 10 integrations.Delete one.
MPBX-CRM-CREDENTIALS-REQUIRED400The template names credentials that have no value, and you tried to switch the integration on, or to run a real (not dry-run) test, or a call needed one. This also happens after a template change moved base_url to another address: the stored credentials are then deleted on purpose (write-only credentials must not be sendable to an address their owner did not approve).Set the missing credentials (PUT /integrations/crm/{id}/credentials).
MPBX-CRM-CREDENTIALS-UNREADABLE500The sealed credentials cannot be opened (the master key was replaced without re-wrapping, or the row was damaged).Set the credentials again.
MPBX-CRM-DISABLED409The integration is switched off (creating a contact needs it on).Switch it on.
MPBX-CRM-OPERATION-UNSUPPORTED400The template has no such operation.Add the operation to the template or choose another.
MPBX-CRM-RATE-LIMITED429More than 20 test runs, or more than 600 lookups, searches and contact creations, in a minute for the company.Wait a minute (Retry-After: 60).
MPBX-CRM-NOT-RETRYABLE409Only a dead job can be tried again.Wait for a pending job to finish.
MPBX-CRM-CALL-BLOCKED503The outbound guard refused the CRM's address after name resolution: not https, or a private, loopback, link-local (cloud metadata), carrier-grade NAT, documentation, multicast or reserved address (IPv4-mapped and NAT64 forms included), or an internal name.Use a public https address.
MPBX-CRM-CALL-TIMEOUT503The CRM did not answer within the operation's time limit.Check the CRM; raise timeout_ms (500 to 15000) if it is slow.
MPBX-CRM-CALL-REFUSED503The CRM answered with an error status; the message gives the status.Check the credentials and the request in the test console (dry run).
MPBX-CRM-CALL-BAD-RESPONSE503The CRM's answer is not JSON, or the template reads nothing from it.Compare the response mapping with the real answer.
MPBX-CRM-CALL-FAILED503The CRM could not be reached (name resolution, connection, TLS) or its answer was larger than 256 KiB.Check the address and the CRM's availability.

The log of calls (GET /integrations/crm/{id}/log) and the dead journal jobs carry the short machine code of a failure instead of an HTTP problem: blocked, dns, network, timeout, too_large, http_status, bad_response, template_error (the template could not build the request) and credentials_missing.