A verification code that never shows up feels like a dead end. It usually isn't. On a free shared number there are basically seven things that go wrong: the service blocks shared numbers, the number was already used for that app, you picked the wrong country, a carrier ate the message, the number dropped offline, you tripped a rate limit, or the number got quietly blocked after abuse. Every one of those has a fix, and most of them take about ten seconds. The real skill is reading the failure before you start retrying, because the wrong retry digs the hole deeper.
First, read the symptom
Before you touch anything, look at how the request failed. There are two failure modes and they point in opposite directions.
Instant reject. The field goes red the second you hit submit: "enter a valid number", "this number can't be used", "already registered". The service refused the number before it sent a single text. That's a decision made on the sender's side. Either it blocks the number, or it has seen it before.
"Code sent" and then nothing. The app cheerfully confirms it sent a code, and the inbox just sits there. This is a different animal. The message was accepted for delivery, so you're looking at filtering, lag, an offline number, or a country mismatch.
Sort your problem into one of those two buckets and you've already crossed half the suspects off the list.
Symptom-to-cause cheat sheet
| What you see | Most likely cause | First thing to try |
|---|---|---|
| Rejected instantly as "invalid" | Sender blocks shared/VoIP numbers | Try another number or country |
| "Number already registered" | Already used for that service | Pick a different number |
| "Code sent", inbox empty after 2–3 min | Carrier filtering or latency | Wait 60s, then refresh |
| No code and the number shows offline | Number temporarily offline | Choose one marked Online |
| "Too many attempts, try later" | Rate limit from retrying | Stop, wait a few minutes |
| Worked earlier, now silent | Silent block after abuse | Switch number or country |
The 7 reasons an SMS code doesn't arrive
1. The sender blocks shared or VoIP ranges
Plenty of services keep lists of numbers known to be virtual, public, or VoIP, and they refuse them on sight. You'll see it as that instant reject, no text sent. Try a different number first, then a different country. If every shared number bounces, the service simply doesn't allow them, and the section further down names the usual offenders.
2. The number was already used for that service
Public numbers are shared, so someone may well have registered the same app on the exact number you grabbed. Most services cap it at one account per number, and yours gets turned away. Swap to another number on the same country page and try again.
3. You picked the wrong country
Some services only send to certain regions, and a lot of them format the number based on the country you selected inside their app. Get that wrong and the SMS is addressed to the wrong place, or never sent at all. Check that the country in the app matches the country of the number.
4. Carrier filtering or latency
Even a message that got accepted can be delayed or dropped by carrier spam filters, and it's worst during busy hours. A code that should land instantly sometimes takes two minutes. Sometimes it never clears the filter. Give it a full minute or two and refresh before you write it off.
5. The number is temporarily offline
A public number only shows texts while it's actively connected. If it drops, nothing new appears, and no amount of patience brings it back. Stick to numbers marked Online, and move the moment one goes quiet.
6. You hit a service-side rate limit
Requesting the code again and again doesn't hurry it along. It usually trips a rate limit that then blocks every code for a while. The tell is a "too many attempts" message followed by dead silence. Stop, wait a few minutes, then ask once.
7. A silent block after an abuse wave
Because so many people share these numbers, a service can flag one after a spam run or a burst of sign-ups without ever telling you. No error message. The OTP just quietly stops arriving. Move to a fresh number, or a different country.
Retry the right way
This is the part people get wrong. Every "resend" tends to invalidate the code before it, and each one nudges you closer to a rate limit.
- Wait at least 60 seconds after the first request before doing anything else.
- Refresh the inbox instead of re-requesting. The message might just be slow.
- Request one new code if the first never showed, then wait again.
- Don't machine-gun the button. Fast retries are the quickest route to a temporary block.
Codes expire by design too, usually inside a few minutes, so an old one going dead is normal rather than broken. If you want the mechanics behind that, read how OTP codes work.
When to stop fighting one number and switch
If a code still won't come through, escalate rather than wrestling the same number:
- Another number, same country. The fastest fix for reuse and silent blocks.
- Another country the service accepts. Useful when a whole region is getting filtered.
- Back to the basics. The normal flow is walked through in how to use SMSS to receive SMS codes.
- A private paid number for anything you actually intend to keep. Public numbers can't be reserved, and a private one is steadier; the free vs paid temporary numbers comparison lays out the trade-offs.
What a number swap can fix, and what it can't
For low-stakes verification, free shared numbers are genuinely fine: one-off sign-ups, free trials, forum accounts, testing your own app. A quick swap clears nearly every "code not arriving" problem you'll meet there.
For the services that hate public numbers, they're unreliable and often flat-out impossible:
- WhatsApp turns away most shared and VoIP numbers and holds you to one account per number. WhatsApp verification has the realistic version.
- OpenAI/ChatGPT, Google/Gmail, and banks reject public numbers as a matter of policy. Retrying changes nothing, and the same goes for Google verification.
Then there's the rule that has nothing to do with whether a code arrives: keep public numbers away from banking, payments, identity, and account recovery, full stop. The inbox is shared and visible to anyone, so a code that does land can be read by a stranger.
Most of the time, a silent inbox isn't a broken system. It's the wrong number, and the second one works. Read the failure, give it sixty seconds, and swap before you retry instead of after.
Frequently asked questions
Why does the app say a code was sent but nothing arrives?
The message was accepted for delivery but then delayed or dropped, usually by a carrier spam filter, an offline number, or a country mismatch. Wait a full minute and refresh the inbox before assuming it failed. If it still doesn’t appear, switch to another number marked Online on the same country page.
How long should I wait before retrying?
Wait at least 60 seconds after the first request, and refresh the inbox instead of pressing resend. Codes can take a couple of minutes on a busy network. Requesting over and over usually invalidates the previous code and can trigger a rate limit that blocks every code for a while.
Does switching country help?
Yes, when the service only accepts numbers from certain regions or a whole region is being filtered. Just make sure the country you choose inside the app matches the number’s country, or the SMS goes to the wrong place. Trying another country is a good second step after swapping to a different number in the same one.
Why is my SMS verification code always rejected instantly?
An instant reject means the service refused the number before sending anything, either because it blocks shared and VoIP numbers, or because that number was already used to register the same service. Try a different number, then a different country. Some services such as WhatsApp, ChatGPT, Google, and banks block public numbers entirely, so no retry will work there.
Can other people see my SMS code on a public number?
Yes. A public inbox is shared, so anyone viewing that number’s page sees the same messages, including any code that arrives. That is fine for low-stakes sign-ups and testing, but never use a public number for banking, payments, identity, or account recovery.
Try it yourself
Receive an SMS code on a free public number in seconds — no sign-up required.
