Limits & Errors
RCS message and agent limits, what an agent cannot do, and the errors you will meet when registering and sending, each with its fix.
Limits
| Limit | Value |
|---|---|
| Buttons per message | Up to 11 suggestions on every content type |
| Button label | Up to 25 characters |
postbackData | Up to 2,048 characters; defaults to the label |
| Rich card | Title up to 200 characters, description up to 2,000, up to 4 buttons on the card |
| Carousel | 2 to 10 cards |
| Calendar event button | title up to 100 characters, description up to 500 |
| Capability check | Up to 100 numbers per GET /v1/rcs/capabilities call |
| Logo and banner | 224x224 logo under 50 KB, 1440x448 banner under 200 KB; POST /v1/rcs/assets crops and compresses to fit |
| Agent profile | displayName up to 40 characters, description up to 100 |
| Brand colour | Six-digit hex with at least 4.5:1 contrast on white |
| Launch details | At least three messageExamples |
| US carrier review | Usually 4 to 6 weeks |
What you cannot do
RCS on Zernio does not allow:
- Sending before the agent is in
testing(accepted test phones only) orlive - Using T-Mobile or AT&T numbers as test phones
- Reaching phones without RCS unless the agent has
smsFallbackFromset - Changing agent details once they are filed with the carriers (only
smsFallbackFromcan still change) - More than one open agent per profile
- Sending both
brandandbrandIdon one request - A Gmail,
info@orsupport@address as the brand contact - A website as the only contact button (add a phone or an email)
- Rich content in inbox replies (they go out as plain RCS text; use
POST /v1/rcs/messages) - Opting a person back in for them (only their START does)
- Launching in Spain while the carriers pause launches there
- RCS on a plan without the inbox
Common errors
| Status | Code | Cause | Fix |
|---|---|---|---|
403 | The agent is not launched and the number is not an accepted test phone | Invite the phone as a test device, or wait for live | |
403 | The plan does not include the inbox | Move to a plan that includes the inbox | |
409 | recipient_opted_out | The recipient replied STOP | Wait for their START |
409 | invalid_resource_state | The agent does not exist with the carriers yet | Wait for the agent to reach testing or live |
404 | The agent is not on your team | Check the agentId | |
409 | The reused brand was rejected, or the agent is past the point where that change is allowed | Send a new brand instead; once filed, only smsFallbackFrom can change | |
422 | USAGE_BILLING_REQUIRED | The workspace is not on usage-based billing | Move the workspace to usage-based billing |
402 | No card is on file | Add a card |
An agent the carriers reject moves to rejected, with the reason in declineReason.
Every error uses the envelope in error handling.
Related
- Registering an agent: brand, agent, test phones and launch.
- Sending: content types, buttons and SMS fallback.
- Receiving: replies, receipts and opt-outs.
- RCS rates: agent fees and message prices.
Was this page helpful?
Receiving
RCS replies, button taps, shared locations and files arrive in the inbox as platform rcs, with message.received, message.delivered, message.read and message.failed webhooks.
iMessage
Send and receive iMessages from a dedicated Apple-registered number, with SMS/RCS fallback, opt-in links, groups and the unified inbox