Twilio

Twilio Test Credentials not Working

Twilio Test Credentials never send real SMS or calls. Expecting delivery or using a real From number causes failure. The only valid sender is +15005550006.

Updated Jul 1, 2026

The short answer

Twilio Test Credentials let you exercise the REST API without charges or real messages, but they never send actual SMS, calls, or callbacks. "Not working" usually means you expected delivery (impossible by design) or used a live "From" number. With test credentials, the only valid sender is the magic number +15005550006; any real number returns error 21606.

Twilio Test Credentials are a separate Account SID and Auth Token (found under Account → API keys & tokens, or the legacy Console settings) that let you call parts of the REST API without being charged. The catch that surprises most developers: they are simulation-only. Per Twilio's docs, when you authenticate with test credentials, "Twilio doesn't charge your account, update the state of your account, or connect to real phone numbers." So a request can return 201 Created and a message SID while no SMS ever arrives — that is expected behavior, not a bug.

What causes "Twilio Test Credentials not working"?

There are three distinct situations people lump under this label:

  1. You expected a real message or call. Test credentials never deliver to a real handset and never fire status callbacks for SMS or voice. If your goal is end-to-end delivery, test credentials are the wrong tool.
  2. You used a live From number. Test credentials have no access to your real, purchased Twilio numbers. Sending from one returns error 21606 — "The 'From' number … is not a valid, message-capable Twilio number for this account." Twilio's own 21606 reference lists "Test credentials paired with a live number instead of a test number" as a cause.
  3. You hit a 403 Forbidden. Test credentials only support a subset of resources (Messages, Calls, IncomingPhoneNumbers, Lookup). Any other endpoint returns 403.

How do I fix it?

If you need to verify your code path works (without delivery): keep using test credentials, but use the magic numbers. The only valid SMS/voice From is +15005550006. For the To, pick a magic number to force the outcome you want to handle:

# SMS — using TEST Account SID + TEST Auth Token
From: +15005550006 # the only valid test sender
To: +15005550006 # valid recipient → success (no real SMS sent)

Magic To numbers that trigger specific SMS errors (so you can test error handling):

  • +15005550001 — Result: Invalid number; Error: 21211
  • +15005550002 — Result: Cannot route; Error: 21612
  • +15005550003 — Result: No international permission; Error: 21408
  • +15005550004 — Result: Blocked number; Error: 21610
  • +15005550009 — Result: Cannot receive SMS; Error: 21614

Magic From numbers also model sender failures: +15005550001 → invalid (21212), +15005550007 → not SMS-capable (21606), +15005550008 → queue full (21611).

If you need an actual message delivered: switch back to your live Account SID and Auth Token and send from a real number you own. To test delivery for free, create a separate trial project — trial accounts include free per-product usage allotments (e.g., a batch of free SMS messages, voice minutes, and emails) and can send/call verified numbers for free to test real delivery.

If you got error 21606 with test credentials: confirm both that you are using the test SID/token pair and that From is exactly +15005550006 in E.164 format. Mixing a live From with test auth (or vice versa) is the most common trigger.

See Twilio's Test Credentials reference for the full magic-number tables covering Calls and phone-number purchases.

FAQ

Common questions

By design. Twilio states that with test credentials it "doesn't charge your account, update the state of your account, or connect to real phone numbers." The API validates and returns a response (often a 201 with a SID) but never delivers the message or fires status callbacks. To actually deliver, use your live credentials or a trial project.

One API, every provider

Stop debugging raw provider errors

Courier connects to your email, SMS, and push providers, handles retries and failover, and surfaces delivery errors in plain language.

Last reviewed Jul 1, 2026. Courier is not affiliated with third-party providers; error behavior may vary by implementation.