Why did my message fail to deliver?
| Error | Meaning | Fix |
|---|---|---|
| Not opted in | Contact hasn't consented to receive WhatsApp messages from you | Collect opt-in before messaging |
| Session window closed | It's been more than 24 hours since the customer last messaged you | Send a template instead of a session message |
| Insufficient wallet balance | Not enough credits to send the message | Recharge your wallet |
| Invalid phone number | Number format is wrong or doesn't exist on WhatsApp | Check number has country code + is on WhatsApp |
| Template not approved | You tried to send a template that's still pending or rejected | Wait for approval or fix and resubmit |
| Blocked by user | Recipient has blocked your WhatsApp number | Cannot be sent — remove from contact list |
| Channel inactive | Your WhatsApp channel is disconnected or expired | Go to Channels and reconnect |
WhatsApp only allows free-form messages (text, images, documents) within 24 hours of the customer's last inbound message. This is called the "session window".
If you try to send a regular message after 24 hours, it will fail with a session window error. The fix is to use a template message instead, which can be sent anytime regardless of when the customer last messaged.
Tanvik checks opt-in status before every outbound message. If a contact hasn't opted in, the message is blocked (and refunded). You can see a contact's opt-in status by opening their profile in the Contacts section.
To fix: collect opt-in via your opt-in widget or link, then retry sending after the sync completes (usually under 1 minute).
If your wallet balance drops below the cost of the next message in a broadcast, the broadcast pauses at that point. All messages sent before the pause are delivered and charged. All unsent messages are not charged.
To resume: recharge your wallet, then resume the broadcast from the Broadcast page.
Tanvik automatically refunds your wallet for every failed message — to the paisa. You can see all refunds under Wallet → Transactions, where they appear as "Refund" credits. There is no manual process needed.
Was this article helpful?