Troubleshooting
Authentication errors
401 Unauthorized
| Cause | How to fix |
|---|---|
x-api-key header missing | Add the header to all requests |
| Incorrect key value | Check for extra spaces or hidden characters |
| Key belongs to another Application | Use the correct key for the Application that contains the channel |
| Key revoked | Generate a new key in the Hub Chatt2.me dashboard under Settings → API Key |
Payload errors
400 Bad Request
Occurs when the request body is invalid. Most common causes:
| Cause | Error example |
|---|---|
| Required field missing | from, to, or content not provided |
Incorrect type for content field | Sent imageUrl but the channel does not support images |
Invalid format for to field | WhatsApp expects E.164 without +, SMS expects with + |
Invalid field combination in content | Using template + components with ORDER_STATUS template |
Invalid interactive.type for the channel | Type location_request_message only exists on WhatsApp |
How to diagnose: check the response body — it usually includes a descriptive message explaining what is wrong.
Resource not found errors
404 Not Found
| Cause | How to fix |
|---|---|
Incorrect channel UUID (from) | Check the UUID in the Channels section of the Application dashboard |
| Channel disconnected or deleted | Reconnect the channel in the Hub Chatt2.me dashboard |
| Channel belongs to another Application | Each key only accesses channels from its own Application |
Invalid webhookId | Check the ID with GET /v1/organization/webhook |
Invalid webhookLogId | Check the ID with GET /v1/organization/webhook/{id}/webhook-log |
Message sending issues
The message returned status: error
Check the errorMessage and errorCode fields in the response:
{
"messageId": null,
"status": "error",
"errorMessage": "The recipient is not a valid WhatsApp user",
"errorCode": "130472"
}
The errorCode values are codes from the channel's platform (e.g. Meta for WhatsApp). Consult the specific channel's documentation for the meaning of each code.
The message stayed enqueued but was never delivered
For WhatsApp and Messenger, enqueued is the normal initial status. Delivery confirmation arrives via webhook MessageStatus. If the user never received it:
- Check if the number is active on WhatsApp
- Check if the webhook is active —
active: truein the response ofGET /v1/organization/webhook/{id} - Check the webhook logs to see if there was any
MessageStatuswithstatus: failed
I tried to send free text on WhatsApp without a template and got an error
WhatsApp only allows free text within an active session window (last 24h of user interaction). Outside that window, use an approved template.
Webhook issues
My endpoint is not receiving events
- Check that the URL is publicly accessible — try accessing the URL in a browser or with
curlfrom another machine - Check HTTPS — the endpoint must have a valid SSL certificate
- Check webhook logs —
GET /v1/organization/webhook/{id}/webhook-log— see if there are failed attempts - Check if the webhook is active —
active: truein the response ofGET /v1/organization/webhook/{id}
I'm receiving statusCode: 0 in the logs
This means the Hub could not connect to your endpoint. Causes:
- Server down or unreachable
- Firewall blocking the connection
- Invalid or expired SSL certificate
- DNS not resolving the URL
My endpoint receives the webhook but returns 500
A 500 error indicates a problem in your code's processing. Tips:
- Add error handling around all endpoint code
- Respond
200 OKimmediately and process in the background - Log the full payload body to inspect what arrived
Pagination limits
| Parameter | Limit |
|---|---|
limit (pagination) | Maximum 50 per page |
| Minimum offset | 0 |
For message sending limits per channel, consult the channel's own policies (WhatsApp Business API, Telegram Bot API, etc.).
Where to get help
If none of the above solutions work, contact Hub Chatt2.me support providing:
- The
messageIdorwebhookLogIdrelated to the issue - The exact payload you sent
- The response received (status code + body)
- The approximate time of the error