Limits & Errors
Voice call limits, what calling and SIP trunks cannot do, and the errors you will meet when routing and placing calls, each with its fix.
Limits
| Limit | Value |
|---|---|
| Outbound calls | 60 per rolling hour, counted across every number on your key |
| Business hours | At most 21 windows |
| IVR menu | At most 12 options; digits 0 to 9, * or # |
| Ringing before voicemail | About 25 seconds |
| Voicemail message | Up to 2 minutes |
| Recording URL | Signed, expires about 10 minutes after signing |
| Browser session token | Lives about 1 hour and must outlive the call |
Media stream (wss://) | PCMU (G.711 u-law) at 8 kHz in both directions, not configurable per number |
| SIP trunk caps | 10 concurrent calls, a daily spend ceiling, a per-minute destination-rate cap, a destination country whitelist |
| Recording and transcription | Off by default; +$0.004 and +$0.03 per minute |
What you cannot do
Voice on Zernio does not allow:
- Transferring a call to a
wss://target (use a+E164number or asip:URI) - Calling emergency services (112/911)
- Routing calls on a number that lives on your own carrier (brought in through WhatsApp embedded signup)
- Zernio voice features (forwarding, IVR, voicemail, recording, softphone) on a number attached to a SIP trunk
- Attaching a number to a SIP trunk while Calls or WhatsApp calling is on
- WhatsApp Business Calling on a SIP trunk
- Agent-initiated outbound calls on the forwarding lane (use a SIP trunk)
- Adding your own headers to the forwarded SIP INVITE
- Presenting a caller ID through a trunk that is not hosted on, or verified onto, your team
- A recording for a call that started without recording on
- A separate voicemail webhook
call.receivedon outbound phone calls- A price quote for inbound calls (the estimate covers outbound destinations only)
- TLS signaling or SRTP media on Retell's inbound leg (its ingest is TCP)
Common errors
| Status | Code | Cause | Fix |
|---|---|---|---|
422 | No voice-enabled number matches fromNumber, or the number has no forward destination and the call sent no forwardTo | Set the forward destination, or pass forwardTo | |
429 | The outbound cap of 60 calls per rolling hour was hit | Wait for the rolling hour; the message has the current cap | |
409 | A transfer on a call that is not connected yet or already ended | Transfer only while the call is live | |
502 | The carrier refused to originate; the call is marked failed | Retry the call | |
422 | A browser dial with an unknown or expired credentialId, or no voice-enabled number matches fromNumber | Mint a new session and register it before dialing | |
409 | invalid_resource_state | Voice settings on a number attached to a SIP trunk | Detach it with DELETE /v1/phone-numbers/{id}/sip-trunk |
422 | Voice settings on a number that lives on your own carrier | Use a number bought or ported into Zernio | |
409 | invalid_resource_state | A trunk attach on a number with Calls or WhatsApp calling on, mid WhatsApp verification, or not active | Call DELETE /v1/phone-numbers/{id}/voice, disable WhatsApp calling, then attach |
403 | feature_not_available | Creating a SIP trunk on legacy (non-usage-based) billing | Move the workspace to usage-based billing |
404 | A recording for a call that does not exist under your key or has no recording | Check recordingEnabled on the call record | |
502 | The recording provider lookup failed | Retry |
A wss:// agent that hangs up or falls to voicemail right after answering usually means the stream handshake failed. Read callErrors on the call record.
An ElevenLabs call that connects and drops at once is almost always a + mismatch between the import and the forwardTo URI.
Every error uses the envelope in error handling.
Related
- Setup: forwarding, voicemail, business hours, IVR and blocklist.
- Outbound calls: place, transfer and end calls.
- AI voice agents:
sip:andwss://destinations. - ElevenLabs: SIP forwarding, trunks and the technical FAQ.
- Call rates: per-minute prices by destination.
Was this page helpful?