Article · Updated 18 Jul 2026 · ~7 min read

Why Virtual Numbers Get Rejected (and How to Actually Get One That Works)

You bought a number, tried to sign up, got "invalid number" or "cannot verify." Here's what's really going on — and the exact steps to make it work on the next try.

Every provider you've heard of — SMS-Activate, 5sim, SMSPool, us — struggles with the same problem: apps reject virtual numbers a meaningful percentage of the time. It's not a bug in one provider's stock; it's a policy at the destination app. Below are the 7 real reasons, with fixes ranked from "usually works" to "rarely works."

The 7 reasons

1. The number was already used for that service

Every provider recycles their number pool. If a Telegram account was created with the number 3 weeks ago and hasn't been deleted, Telegram will reject the same number for a second signup. The provider has no way to see Telegram's internal ledger.

This is the single most common rejection reason across all services. Frequency: ~15-25% of first attempts on popular services.

Fix: Cancel the order (full auto-refund), retry with a different country. Providers who "recommend" specific countries per service are giving you their fresh-pool countries. On our side, that's the UK / Netherlands / Lithuania stock for most services.

2. The service specifically blocks known virtual-number ranges

Big services (WhatsApp, Google, Facebook) buy datasets that flag entire number ranges as "used by SMS-verification services." When a virtual number in a flagged range hits their signup flow, they silently reject without asking for a code. The provider tells you the SMS was sent; the app tells you the number is invalid; nothing actually failed on the delivery pipeline.

Fix: Country choice matters more here than provider. UK / NL / IE / SE ranges tend to stay clean longer than US / IN / RU. If you're getting instant rejects on one country, switching country almost always works — same provider, different backend range.

3. The service checks if the number can receive voice calls

Google's account verification does this. If the SMS code doesn't arrive within 30 seconds, it falls back to "let us call you and read the code." Virtual numbers usually can't receive voice — so the fallback fails, and the whole signup fails. This is different from a rejection: the SMS was fine, the fallback wasn't.

Fix: Refresh Google's verification page and re-request. When you get the choice again, hit "text me" instead of waiting for the fallback. Most virtual-number providers do support SMS; almost none support voice.

4. You typed the number in the wrong format

Every app has slightly different input rules. Some want +44 7... Some want 07... Some want just the digits with no + or leading zero. If the format is wrong, the app rejects before even trying to send an SMS.

Fix: Copy the full number in E.164 format (starts with +, then country code, then number, no spaces) from our order page. If the app strips the +, add the country code manually. Try 3 formats before giving up: +447700900000, 447700900000, 07700900000.

5. The service checks against carrier lookup services

Some apps use HLR (Home Location Register) lookup services to verify a number is on an actual mobile network before sending a code. Some virtual numbers pass HLR (they're allocated on real carrier ranges); others don't. This is a silent check — the app just says "please try a different number" with no explanation.

Fix: Higher-quality providers use HLR-clean ranges. We select for this in our upstream partner mix, but there's no external tool to test it before you buy. Cancel and try a different country.

6. The SMS was delivered but the app rate-limited you

If you tried 2-3 codes on the same account in a few minutes, some apps (Telegram, Instagram) will silently drop future SMS while showing you "code sent." The SMS never comes because it was never actually sent — the app is throttling you. From your side, this looks identical to a delivery failure.

Fix: Wait 15-30 minutes before your next attempt. Don't switch numbers immediately — that just wastes another purchase. If you're in a hurry and can afford it, use a different IP address (VPN, mobile hotspot) for the next attempt — many rate limits are per-IP.

7. Real infrastructure failure (rare but does happen)

Sometimes an SS7 hub is congested, or the upstream SMS provider's route to a specific carrier is temporarily broken, or the carrier itself is having an incident. The message just doesn't arrive, timer runs out, you get refunded. This is a "we shrug" situation on our side too — nothing to fix, just retry.

Fix: Wait 5-10 minutes, retry with the same country. If two attempts in a row on the same country fail with no code, switch country.
Want to try — with automatic refunds if any of the above happens? Buy a number →

Which services are the strictest?

Ranked from hardest to easiest, based on our own 90-day delivery rate stats:

How to reduce rejection rates yourself

  1. Use wallet mode. Failed attempts are refunded instantly — you're never paying for the retry, just the successful signup. Guest mode with 3 failed attempts is €1.20 for zero result; wallet mode with 3 failed attempts is €0 wasted plus your one successful €0.20.
  2. Pick countries from the "recommended" list. Every service page on sms.1mail.lt lists which countries have high delivery for that specific service. Ignoring these means paying more attempts.
  3. Don't spam retries. If your first two attempts fail, wait 10 minutes before the third. Rate limits reset, pools refresh, your success rate goes up.
  4. Enable app-native 2FA immediately. Once you get in, set up an authenticator app or backup PIN within the first 5 minutes. This decouples your account from ever needing SMS again — future logins won't hit the same problem.
Ready to try? Automatic refunds if any of the 7 things above happens. Grab a number →