> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blujay.io/llms.txt
> Use this file to discover all available pages before exploring further.

# CONTACT_PHONE_LOCKED

> Contact phone number can't change

| HTTP status | Retryable |
| - | - |
| `409` | No |

## What happened

A contact's phone number can change only while nothing has happened with it. This one has texts, chats, or calls (outbound calls that never connected don't count), is opted out, is in Free Plan verification, is owned by Follow Up Boss, HubSpot or Close, is in a group chat, or has a scheduled text waiting. `error.details[0].reason` says which: `has_history`, `opted_out`, `verification`, `followupboss`, `hubspot`, `close`, `group`, or `scheduled_text`. Nothing on the contact was changed.

## How to fix it

Create a new contact for the new number with `POST /v1/contacts`. For `followupboss`, `hubspot` or `close`, change the number in that CRM. Giving a number to a contact that has none is always allowed.

## Example response

An illustrative example. The `message` wording and the contents of `details` vary; branch on `error.code`.

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "CONTACT_PHONE_LOCKED",
    "message": "Contact phone number can't change",
    "type": "validation",
    "http_status": 409,
    "retryable": false,
    "doc_url": "https://docs.blujay.io/errors/contact-phone-locked",
    "details": []
  },
  "trace_id": "trc_8f2a1c0e4b7d",
  "timestamp": "2026-10-14T17:30:48.000Z"
}
```

## Still stuck?

Email [support@blujay.io](mailto:support@blujay.io) with the `trace_id` from the error response. See [Errors](https://docs.blujay.io/errors.md) for the response format.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.