Anon SMS Journal
Verification code not arriving? The 9 real reasons, and how to fix each one
A one-time code crosses roughly six systems between the moment you press 'send code' and the moment your phone buzzes, and any of them can drop it without telling anyone. Here are the nine reasons it actually happens, a fix for each, and the order to try them in.
By Ellis Marner · Delivery & privacy lead, Anon SMS
· 9 min read
What actually happens between “send code” and your phone buzzing
Almost all bad advice about missing codes ("restart your phone", "check your signal") comes from imagining SMS as a direct line from the app to your handset. It isn't. It is a relay race, and the baton gets dropped silently.
- 1App or website — decides whether to send at all
- 2OTP provider — Twilio, MessageBird, Vonage, Sinch
- 3Aggregator / route — wholesale carrier that resells the leg
- 4Destination network — your operator's SMS centre
- 5Spam filter — operator-side content and sender checks
- 6Handset — your phone, your settings, your storage
Two things follow from this diagram. First, no single party sees the whole journey: the app is told "accepted for delivery" by its provider and considers the job done, while the message may be discarded three hops later. Second, delivery receipts lie by omission — a "delivered" status often means delivered to the next network, not to your phone. That is why support agents insist the code was sent while your inbox stays empty. They are both right.
The nine reasons
1. Carrier-level spam filtering
The most common cause by far, and completely invisible to you. Mobile operators filter inbound SMS aggressively for spam, and OTP traffic looks statistically identical to spam: high volume, short messages, from a shared sender, containing digits and often a URL. If a batch trips a threshold, the whole batch is dropped. Nothing appears in your inbox, no error reaches the sender.
Fix: request one resend a minute later — it may take a different route. If a specific service always fails on your number, ask it to send a voice call code instead, which uses an entirely separate path.
2. Your number is a VoIP number and the service blocks the range
Services buy number-intelligence lookups that report line type. Blocking VoIP is one of the cheapest fraud controls available, so it is extremely common — and Google Voice, being the most popular VoIP option, is the most widely blocked. The failure is silent surprisingly often: instead of "we don't accept this number", the send is simply skipped.
Fix: use a real mobile range. No amount of retrying changes the line type of the number you already have.
3. Number reputation — abuse before you had it
Numbers are recycled, and their history follows them. If a previous holder used your number for fraud, spam or mass account creation, it may sit on a blocklist you cannot see. The same applies to shared or low-quality virtual number pools: once a range is associated with abuse, big platforms refuse the whole range rather than assess it number by number.
Fix: a different number, ideally from a different range. This is the one cause where the number itself is the fault.
4. Wrong country code or formatting
Mundane and very frequent. A leading zero kept after the country code (+44 07… instead of +44 7…), the country selector left on the default, spaces or dashes the form fails to strip, or a national trunk prefix included. The message is dispatched to a number that does not exist and nobody is notified.
Fix: re-enter in strict E.164 — plus, country code, then the number with no leading zero and no punctuation.
5. You were silently rate-limited
After three or four rapid attempts, most services stop sending. Some say so; many keep showing "code sent" while quietly discarding the request, because telling attackers about the limit is a security leak. From your side it looks identical to a delivery failure, and every further tap makes it worse.
Fix: stop pressing resend. Wait fifteen to sixty minutes, then try once.
6. Sender ID blocked in your country
Several countries require commercial senders to pre-register their sender IDs and message templates. India's DLT regime is the strictest, and Indonesia, Saudi Arabia, the UAE, Qatar and Vietnam all operate versions of it. If a foreign service has not registered, its messages are rejected at the border regardless of your phone, your signal or your carrier.
Fix: nothing on your end can fix it. Use a number in a country where the service actually has a working route, or an email or authenticator-app option instead.
7. Aggregator route failure
The boring one nobody mentions. International SMS is sold in wholesale legs, and providers buy the cheapest route that meets a quality target. Routes fail: an interconnect goes down, a wholesale contract lapses mid-month, a "direct" route turns out to be a grey route that the destination operator has started blocking. Delivery to one country can be at 95% in the morning and 20% by evening, with no announcement.
Fix: retry later, or use a different destination country. This is why the same service can work perfectly for a friend and fail for you within the same hour.
8. Handset-side causes
Occasionally it really is the phone. "Silence unknown senders" on iOS routes shortcode messages out of your main view. A full message store on Android can refuse new SMS. A previously blocked shortcode stays blocked. Some carrier spam apps quarantine messages into a folder you have never opened. Dual-SIM handsets can also have the wrong line active for receiving.
Fix: check filtered and spam folders, turn off unknown-sender silencing, free up storage, and confirm the right SIM is active.
9. The service genuinely never sent it
The last possibility is that nothing was ever dispatched. The signup failed validation upstream, the account already exists, the anti-fraud layer scored the attempt as risky because of the IP, device or country mismatch, or the provider account hit its own spending or throughput limit. The UI says "we've sent a code" because that string is hardcoded into the success screen, not because a message left the building.
Fix: try the password-reset or "sign in instead" path, which often reveals that the account already exists — the single most common version of this.
Fix it in order: a five-minute triage
- Check the number you typed, digit by digit, in full international format.
- Check your spam, filtered and unknown-sender folders, plus any carrier spam-blocking app.
- Wait a full three minutes without touching anything. Late delivery is common.
- Request exactly one resend. Then stop, whatever happens.
- Switch channel if offered: voice call, email, or an authenticator app.
- Try the "sign in" or "forgot password" route to test whether the account already exists.
- Try again in half an hour. Rate limits expire, and broken routes are often repaired within the hour.
- If it fails repeatedly on the same number, the number is the problem — change it.
When the problem is the number itself, not your phone
Reasons 2, 3 and 6 all share a root cause: the number cannot receive that service's messages, and nothing you do to your handset will change that. This is where a temporary number legitimately helps — a clean number on a range that is known to work for that specific service, in a country where the sender has a live route. It is also the cheapest way to test the hypothesis, since a number that receives nothing costs you nothing. The step-by-step is in how it works.
Be clear about the limit, though. If the service has flagged or suspended your account, a new number will not fix it — the flag is on the account, the device and the payment method as well. Nor will a new number help if the block is a sender-ID registration problem at the country level for the number you are already using. Diagnose first; a new number solves exactly one class of failure.
Why “pay only when the code arrives” matters here
Everything above adds up to one conclusion: delivery failure is normal and structural, not an edge case. Even well-run OTP traffic loses a meaningful percentage of messages to filtering and routing on the way to some destinations, and the sender usually cannot tell you which ones.
That is why a number provider charging you for a code that never landed is charging you for its own routing failure. It should be their problem to solve, not a cost passed to you. Ours refunds automatically when a number expires without a message — the details are in the refund policy, and the per-service prices those refunds apply to are on the pricing page.
FAQ
- How long should a verification code take to arrive?
- Domestically, five to twenty seconds is normal. Internationally, up to a minute or two is unremarkable. Past three minutes the message has almost certainly been dropped somewhere in the chain rather than delayed — waiting longer rarely helps, and requesting one resend does.
- Can I request a second code?
- Yes, but once. A second request often takes a different route and succeeds where the first failed. A third and fourth request usually trigger rate limiting, which guarantees that none of them arrive and can lock the attempt for an hour.
- Does a VPN affect SMS delivery?
- Not directly — an SMS travels over the carrier network, not your internet connection, so a VPN cannot block it. Indirectly it can matter: a service that sees a signup from a country far from the number's country may score the attempt as risky and decline to send at all.
- Why do codes work for some apps and not others?
- Because each app uses a different SMS provider, a different route to your carrier, and a different policy on number types. One app's provider may have a clean direct route to your operator while another's uses a cheap grey route that your carrier filters. Same phone, same number, different outcome.
More questions about numbers, refunds and country availability are answered on the FAQ page.
Read next
- Why every app wants your phone number (and what happens to it next)
A number stopped being a way to call you and became a persistent unique ID. Here are the four reasons a signup form asks for it, where it travels afterwards, and which risks are actually likely.
- Temporary number vs Google Voice vs burner SIM vs eSIM: which one fits your situation
Google Voice, a second SIM, a travel eSIM or a temporary number — a plain comparison table, plus the exact situations where each one is the right answer and where it walls you out.
