What this error means
ALREADY_EXISTS is returned with HTTP status 409 when a create request
collides with a record that already exists: a contact with the same phone or
email, a template with the same channel and name, or any other uniqueness
rule on the resource. The existing record is left untouched and no duplicate
is created.
Every response for this error carries this page’s address in meta.docs_url:
Cause
How to fix it
- Read the specific code. Variant codes such as
CONTACT_PHONE_ALREADY_EXISTSname the exact field that collided; use it to find the existing record. - Use PATCH to change an existing record. If your intent was an update,
send
PATCHagainst the existing resource’s id instead of repeating thePOST. - Or pick a unique value. If you genuinely need a second record, change the colliding field.
- Look up before you create in import flows. When syncing from a CRM or CSV, resolve existing contacts by phone or email first and update them, so a re-run of the import does not surface one 409 per row.
Related
- Error Code Reference — the
ALREADY_EXISTSrow plus the per-field variant codes (CONTACT_PHONE_ALREADY_EXISTS,CONTACT_EMAIL_ALREADY_EXISTS, and others). - Error Handling Examples — response-envelope handling patterns in code.