Channel troubleshooting
When messages aren’t delivering, start here. Most issues fall into one of six categories.
1. Credentials expired or revoked
Symptoms: sudden 100% failure rate on a channel that was working. Error codes like 401, 403, or “authentication failed” in delivery logs.
Fix:
- Go to Settings → Channels → [channel] → Credentials
- Re-enter or rotate the API key / token / certificate
- For WhatsApp: check that your Meta Business Account is still verified
- For Push: APNs certificates expire annually — check the expiry date
2. Template not approved
Symptoms: WhatsApp or RCS messages fail with “template not found” or “template rejected.”
Fix:
- Go to Templates and check the approval status of the template you’re using
- WhatsApp templates require Meta approval (usually under 1 hour; rejected templates show a reason)
- RCS templates require carrier approval (can take 24-48 hours)
- Edit and resubmit if rejected — common rejection reasons: missing opt-out language, promotional content in utility template category
3. Contact missing channel identifier
Symptoms: campaign shows “skipped” for some contacts. Delivery attempted but no channel available.
Fix:
- Check the contact profile — do they have a phone number (for WhatsApp/SMS/RCS) or email (for Email)?
- If using multi-channel campaigns, ensure contacts have at least one valid identifier for the selected channels
- For Push: the contact must have a registered device token — check Settings → Channels → Push → Registered Devices
4. Rate limits or throttling
Symptoms: messages delivering slowly, or provider returns 429 Too Many Requests.
Fix:
- Check Settings → Developer → Throughput for current send rates
- WhatsApp has a per-number sending limit that increases with quality score — check your WhatsApp Business Account quality rating in Meta Business Manager
- Email domain warmup affects sending speed for new domains — check Settings → Channels → Email → Warmup Progress
- SMS providers have per-second rate caps — if you’re sending to a large segment, the platform queues and throttles automatically
5. Wrong outlet sender on a multi-outlet brand
Symptoms: SMS or WhatsApp messages send under the workspace-default sender even though the contact has a location_id mapped to a different outlet sender.
Fix:
- Check the per-outlet sender mapping on Settings → Channels → [channel] → Routing. Routing UI appears whenever the workspace has more than one sender on the channel.
- The egress adapter resolves senders by calling Control Plane’s
/v1/sender/resolvewith the contact’slocation_id. Confirm the contact actually haslocation_idpopulated — anonymous or unscoped contacts always fall back to the workspace-default sender. - For Managed multi-outlet brands, every outlet is provisioned with one Aegis-provided number on first activation. Additional numbers per outlet are billed at the MSG91 rental rate.
6. Webhook not receiving delivery receipts
Symptoms: messages show as “sent” but never update to “delivered” or “opened.”
Fix:
- Verify the webhook URL is reachable — go to Settings → Developer → Webhooks and hit Test
- For WhatsApp: ensure the webhook URL is configured in your Meta App Dashboard (managed mode does this automatically)
- For Email: check that the provider’s event webhook (SendGrid Event Webhook, SES SNS Notification) is pointed at Active Reach’s ingestion endpoint
- Check Measure → Live Events — if delivery receipts aren’t appearing, the issue is between the provider and Active Reach’s webhook handler
Diagnostic tools
| Tool | Location | What it shows |
|---|---|---|
| Live Events | Measure → Live Events | Real-time stream of all delivery events (sent, delivered, bounced, opened, clicked) |
| Campaign delivery log | Campaign detail → Delivery tab | Per-contact delivery status with error codes |
| Channel health | Settings → Channels → [channel] | Provider connection status, recent errors, credential validity |
| Webhook test | Settings → Developer → Webhooks → Test | Fires a test payload to your webhook URL and shows the response |
| Audit log | Settings → Audit Log | Tracks configuration changes (credential rotation, channel reconnect) |
Still stuck?
If none of the above resolves your issue:
- Check the status page for platform-wide incidents
- Open a support ticket from Settings → Help with the campaign ID and error code