WhatsApp error 33: phone number deleted — cause and fix
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
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).
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:
{
"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. 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). A deleted number can produce it, and so can removed access: do not conclude the number was deleted before checking access, see error 100 and error 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
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.
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.
If it was deleted, reconnect it. The business goes through the
connect link 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).
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}/healthfails 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: an unknown or misspelled parameter; with subcode 33, an object that cannot be found or accessed.
- 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).
Sources
WhatsApp error 141010: business not verified — fix
WhatsApp error 141010 "The Business has not passed business verification": why your OTP templates are refused, and how to unblock them.
WhatsApp error 100: Invalid parameter — cause and fix
WhatsApp Cloud API error 100 (Invalid parameter): an unknown, misspelled or too-long parameter. How to read details and fix the request.