# WhatsApp error 33: phone number deleted — cause and fix

URL: https://wa.genuka.com/en/docs/errors/33
Language: English

> WhatsApp Cloud API error 33: the target WhatsApp Business number was deleted, or the ID is no longer the right one. How to diagnose and reconnect.

WhatsApp error 33 means, according to Meta, that the WhatsApp Business phone number the request
targets has been deleted. The phone number ID you are using no longer points to an active number.
Check that ID; if the number really was deleted, it has to be connected again. Sending the same
request again will change nothing.

## What does error 33 mean?

Meta files it under the Cloud API's "other errors":

> "The business phone number has been deleted." — suggested fix: "Verify that the business phone
> number is correct."
> — [Meta, Cloud API error codes](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes#other-errors)

Meta's fix therefore covers two causes: a number that really was deleted, or an ID that is not the
right one.

### Deleted, deregistered or still being deleted?

Three similar states produce three different codes:

| Number state                                          | Code returned                                                             | What to do                                      |
| ----------------------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------- |
| Deleted from the WhatsApp account                     | **33**                                                                    | Check the ID, then add and reconnect the number |
| Deregistered from the Cloud API, but still present    | `133010`: "Phone number not registered on the WhatsApp Business Platform" | Register it again                               |
| Deleted a few minutes ago, and being registered again | `133015`: deletion has not completed                                      | Wait 5 minutes before retrying                  |

The wording comes from the same Meta page. Meta also states that deregistering a number does not
delete it or its message history
([Meta, Registration](https://developers.facebook.com/documentation/business-messaging/whatsapp/business-phone-numbers/registration)).

## Error 33 or subcode 33?

First check which field carries the 33. Graph can also answer with code `100` and
`error_subcode: 33`, a response that says nothing about a deleted number:

```json title="Code 100, subcode 33"
{
  "error": {
    "message": "Unsupported post request. Object with ID '123456789012345' does not exist, cannot be loaded due to missing permissions, or does not support this operation.",
    "type": "GraphMethodException",
    "code": 100,
    "error_subcode": 33
  }
}
```

This response was reported on the
[Activepieces forum](https://community.activepieces.com/t/whatsapp-business-error/4324). It says the target object
does not exist, or the token has no access to it. The reported causes are a wrong ID, a token that
lost access to that asset, or partner access that was removed
([Fast2SMS](https://www.fast2sms.com/help/?p=17132)). A deleted number can produce it, and so can
removed access: do not conclude the number was deleted before checking access, see
[error 100](https://wa.genuka.com/en/docs/errors/100) and [error 200](https://wa.genuka.com/en/docs/errors/200).

## When does error 33 happen?

* **The number was deleted in WhatsApp Manager** by someone at the business, while an integration
  was still using it.
* **The ID is wrong or stale**: copied from another account, kept in a configuration after a number
  change, or confused with the displayed phone number.

### Where do you see it in Genuka WA?

Genuka WA stores the number's ID when it is connected; the `connectionId` you pass points to it. If
the business later deletes the number in WhatsApp Manager, calls on that connection are refused:
with `meta.code: 33`, or with `meta.code: 100` and `meta.subcode: 33`, the response described above.

Genuka does not put 33 in a dedicated class: the class follows the HTTP status Meta returned,
usually `unknown`, and it is not retryable.

| Channel                            | What you get                                                                          |
| ---------------------------------- | ------------------------------------------------------------------------------------- |
| `POST /api/v1/messages`            | `400 send_unknown` (or `409 send_config` if Meta answers 401 or 403), `meta.code: 33` |
| `GET /api/v1/numbers/{id}/health`  | `422 meta_error` (or `403` if Meta answers 401 or 403), with the same `meta` object   |
| `GET /api/v1/numbers?refresh=true` | The number comes back with `"refreshed": false` and a `refreshError`                  |
| Campaign                           | Each recipient turns `failed`, with Meta's message                                    |

## How do I fix error 33?

### If you go through Genuka WA

1. **Confirm the number no longer answers.** `GET /api/v1/numbers/{id}/health` reads Meta for that one
   number: a `meta_error` refusal whose `meta.code` or `meta.subcode` is 33 confirms it in a single
   call. Also read its status in `GET /api/v1/connections`: if it is no longer `connected`, access may
   have been removed rather than the number deleted, see [error 200](https://wa.genuka.com/en/docs/errors/200).

2. **Have the number checked in WhatsApp Manager**, **Phone numbers** tab, by someone with access to
   the business's WhatsApp account. If it is still listed, the stored ID is no longer right: contact
   Genuka support with `x-request-id` and `meta.traceId`.

3. **If it was deleted, reconnect it.** The business goes through the
   [connect link](https://wa.genuka.com/en/docs/onboarding) again, which adds the number through Meta's Embedded Signup and
   registers it on the Cloud API. Then read `GET /api/v1/connections` again and use the `connectionId`
   listed there for this number, rather than the one you had kept.

   If Meta gave the number a new identifier, reconnecting creates a new connection, which needs a free
   slot in your plan. If every slot is in use, first release the old one from the client's page in the
   dashboard (**Release the slot**): it no longer sends, but it still holds a slot, and the
   reconnection would be refused with `plan_limit_numbers`.

If Meta gave the number a new identifier, the messages, templates and statistics Genuka WA already
recorded stay attached to the old connection.

### If you call the Cloud API directly

List the account's numbers with `GET /{WABA_ID}/phone_numbers` and compare their `id` with the one
you use. If the number is gone, add it back in WhatsApp Manager, verify it, then register it with
`POST /{PHONE_NUMBER_ID}/register`
([Meta, Registration](https://developers.facebook.com/documentation/business-messaging/whatsapp/business-phone-numbers/registration)).
Right after a deletion, wait a few minutes: Meta answers `133015` until it has completed.

## How do I prevent error 33?

* **Stop sends before deleting a number.** Tell the people who manage WhatsApp Manager: deleting a
  number immediately stops every integration that uses it.
* **Reference the connection, not the phone number.** Store Genuka WA's `connectionId`, or Meta's
  phone number ID, rather than the displayed number, which is not an API identifier.
* **Check health before a large campaign.** A `GET /api/v1/numbers/{id}/health` fails right away on
  a deleted number, instead of letting every recipient fail one by one.

## Related error codes

* `133010`: the number exists but is not registered on the Cloud API.
* `133015`: the number was just deleted and deletion has not completed.
* [100](https://wa.genuka.com/en/docs/errors/100): an unknown or misspelled parameter; with subcode 33, an object that
  cannot be found or accessed.
* [200](https://wa.genuka.com/en/docs/errors/200): the account is no longer accessible, for instance after access was
  removed.

## FAQ

### What is the difference between deregistering and deleting a number?

Deregistering makes the number unusable with the Cloud API until it is registered again, without
deleting it or its history. Deleting removes it from the WhatsApp account: that is the case that
produces error 33.

### Should I retry a send refused with error 33?

No. Until the number is reconnected, every send on that connection will fail the same way.

### Is my message history lost?

Not on the Genuka WA side: what was recorded stays attached to the old connection. On Meta's side,
yes: deleting a number also deletes its history, whereas deregistering it keeps it
([Meta, Registration](https://developers.facebook.com/documentation/business-messaging/whatsapp/business-phone-numbers/registration)).

## Sources

* [Meta — Error codes](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes)
* [Meta — Register a business phone number](https://developers.facebook.com/documentation/business-messaging/whatsapp/business-phone-numbers/registration)
* [Activepieces community — code 100, error\_subcode 33](https://community.activepieces.com/t/whatsapp-business-error/4324)
* [Fast2SMS — Unsupported POST/GET request, object does not exist](https://www.fast2sms.com/help/?p=17132)
