Skip to content
RelationsAI
Error codes

contact_already_exists

HTTP status
409
Retry
No
Execution
Nothing was done
Admin needed
No

Contact already exists. Phone numbers are unique within a workspace. Use POST /v1/contacts/upsert to create-or-update by phone number, or update the existing contact in details.contact_id.

What it means

The API returns HTTP 409 with error.code set to contact_already_exists. The default message is: "A contact with this phone number already exists."

Common causes

  • Creating a contact whose number is already a contact.
  • Changing a contact's number to one another contact already has.

How to identify it

Check the response status (409) and error.code (contact_already_exists). Branch on error.code, not on the message text: messages can be reworded, codes do not change within v1. Log error.request_id (also sent as the X-Request-Id header) so support can find the request.

How to fix it

  • Update the existing contact, or use the upsert operation.

Retry guidance

Sending the request unchanged fails the same way. Fix the cause first (see How to fix it), then send it again.

Did anything happen?

This request was refused before any call was placed and before anything was charged.

Idempotency

Nothing was done and the refusal is not stored under the Idempotency-Key. Fix the cause, then send the same request (with the same key if you sent one).

Who can fix it

The developer who sends the request can fix it; no administrator action is normally needed.

When to contact support

If the error persists after the steps above, contact support@relationsai.com. See Support for what to include (the request_id, the time in UTC, the operation, and whether you used a test or live key) and what never to send (API keys, Authorization headers, webhook signing secrets, recording links, transcripts or customer data).

Example error response

JSONJSON
{ "error": { "code": "contact_already_exists", "message": "A contact with this phone number already exists.", "details": { "contact_id": "ct_8Rw2Tq5Lm9Xc3Vb7Nz4Kp1" }, "request_id": "req_exi32aw2mlppoxpprvdymqgt", "retry": "no", "doc_url": "https://docs.relationsai.com/errors/contact_already_exists" } }

Incorrect and corrected request

Incorrect: A contact with this number already exists.

Text
POST /v1/contacts { "phone_number": "+12025550100", "name": "Asha Rao" }

Corrected: The upsert updates the existing contact (200) or creates one (201).

Text
POST /v1/contacts/upsert { "phone_number": "+12025550100", "name": "Asha Rao" }

Operations that can return this error

See all codes in the error-code reference.