Telegram sends the login code through the app, not by SMS, when your number was recently used in Telegram on another device and that session is still active (Telegram's FAQ describes the same order: app first, SMS as the fallback). That is the default: an in-app message is instant and needs no carrier, so the app channel wins as long as it exists. You get an SMS only when Telegram has no live session to deliver to, or after the app delivery has clearly failed and you request the fallback.
Why the code goes to the app
When you enter your number, Telegram checks for authorized sessions attached to it. If one exists (an old phone, a tablet, Telegram Desktop, Telegram Web you forgot about), the code is pushed to those sessions as a service message from "Telegram" and the screen reads "We have sent the code to the Telegram app on your other device."
Two consequences people miss:
- The code is not "lost". It is sitting in the Telegram chat on that device, and it is valid for the usual short window.
- Logging out everywhere is what switches the channel to SMS. That is also what makes recovery harder if you cannot reach any device, so do it deliberately, not as a first reflex.
Get the code from the app first
- Open Telegram on any device where you are still logged in, including web.telegram.org if you ever used it.
- Open the official Telegram service chat (blue checkmark, pinned near the top).
- Read the newest message. The code is a short numeric string and is single-use.
- If nothing arrived, pull the chat to refresh: push notifications on an idle device are often delayed, the message itself is not.
Telegram Desktop counts as an active session. So does a session on a phone you sold without logging out, which is the single most common reason this screen appears at all.
Force the SMS fallback
You cannot pick the delivery channel from the login screen. You can only remove the app channel or exhaust it:
- Wait out the timer, then tap "Resend". After the in-app attempt, Telegram offers resend options; depending on version and number, the next option is SMS, a voice call, or a flash call (a dropped call whose last digits are the code).
- Log out of the old session. On the device that has access: Settings > Devices > terminate the other sessions, or "Terminate all other sessions". With no session left, the next login attempt goes to SMS.
- Do not spam the number. Repeated requests inside a few minutes trigger a cooldown, and Telegram will show "too many attempts" instead of a code. One attempt, wait the full timer, one resend.
Flash calls are not SMS
On Android, Telegram may request call-log permission and read the incoming number automatically. If you denied that permission, the flash call still arrives but nothing is filled in: check your recent calls manually for the last digits.
If you cannot open the app on any device
This is the hard case, and no third-party trick fixes it. Your options in order:
- Enter the number on a fresh install and use every resend option offered (SMS, voice, flash call). SMS becomes available on some numbers only after the app attempt visibly fails.
- If you set a cloud password (two-step verification) with a recovery email, use the email reset flow to regain control after login.
- If the number itself is gone (SIM lost, line cancelled), the account is tied to that number. Recover the line with your carrier or accept that the account is unreachable. Telegram does not move an account to a number you cannot prove you control.
If you are trying to avoid pinning a new account to your personal line in the first place, Telegram without a phone number covers what is and is not possible there.
If the number came from a rental service
The same screen has a different meaning when the number is not yours. If you rented a number for a one-time code and Telegram says the code went to the app, that number already has a Telegram account attached, opened by whoever held it before you. No SMS will come, because Telegram is delivering to that older account's session.
The fix is to cancel and take another number, not to wait. On VoidMob a one-time rental that receives no code auto-cancels and refunds in full at the end of its 15-minute window, and you can cancel earlier yourself; then rent a fresh number and request the code again. If it happens on a dedicated monthly number, send support a screenshot and the order ID and the number gets replaced. Registering with a number that already carries an account is not something a second SMS can undo.
Why the SMS never arrives once it is actually sent
Once the channel does switch to SMS, a second class of failure starts. Diagnose it by symptom:
| Symptom | Likely cause | What to do |
|---|---|---|
| Resend only ever offers the app or a call | An active session still exists | Terminate other sessions from a logged-in device, then retry |
| SMS never lands, calls work | Carrier A2P filtering or a full inbox | Delete old messages, disable SMS blocking apps, retry on the carrier network rather than Wi-Fi calling only |
| "Unable to send SMS" or instant rejection | The number is VoIP, recycled, or already rate-limited | Use a non-VoIP carrier number, or wait out the cooldown before the next attempt |
| Code arrives minutes late and is already expired | Roaming or store-and-forward delay | Request once, wait the full timer, and enter the newest code only |
| Number accepted, then "this number cannot be used" | Number type or reputation, not delivery | See the fix for that specific error |
Virtual and app-based numbers fail here more than anything else, because Telegram, like most large platforms, screens the number's carrier record before it sends. Why VoIP numbers fail SMS verification explains the lookup, and this phone number cannot be used for verification covers the adjacent error message.
Registering with a number you actually control
For a new Telegram registration, a non-VoIP carrier number that can receive a code in a short window is what works reliably. One-time OTP numbers cover exactly that: the number is active for 15 minutes, and if no code lands in the window the rental auto-cancels and refunds in full, so a filtered number costs you nothing. Reuse inside that window is free, which matters because Telegram often sends a second code on the same session.
Telegram SMS number pricing
- One-time code (US number)
- from $1
- Rental (US number)
- from $3.75
- Dedicated monthly number
- from $16.99, multiple countries
Prices updated
If the account needs to survive past the first login (re-verification, a device change, a password reset months later), a one-time number is the wrong tool: the code will go to a number you no longer hold. Take a multi-day rental (3, 7, 14, or 30 days) or a dedicated monthly line instead, and keep it for the life of the account. Details on the tiers and what each is for are on the Telegram SMS verification page, and text verification code covers the mechanics of the code itself.
The loop nobody diagnoses: sessions that keep dying
If you are requesting login codes repeatedly, the code delivery may not be the problem. Telegram ties a session to the device and watches where it connects from. Sessions that jump between unrelated networks and countries within minutes tend to get challenged, and each challenge is another code request, which is what eventually lands you in cooldown.
Two configuration rules stop the loop:
- One account, one stable exit. Keep each Telegram account on a consistent IP rather than a rotating pool. A sticky session or a dedicated device holds the same carrier IP, which is what a real phone looks like. Mobile proxies for Telegram is the same idea applied per account.
- Keep the country consistent. A number registered on one country's carrier that logs in from a different continent every session is the pattern that generates extra verification, not the volume of messages.
Fix the network first, then ask for one code.
1Why isn't Telegram sending me an SMS code?
Because a session on another device is still authorized, so Telegram delivers in-app instead. Terminate the other sessions from a device you can reach, or wait out the resend timer until SMS, voice or flash call is offered.
2Why is Telegram unable to send SMS?
Usually number type or rate limiting. Telegram checks the carrier record before sending and rejects VoIP or virtual numbers, and it blocks repeat requests made within a few minutes. Use a non-VoIP carrier number and request one code per timer cycle.
3Can I log in to Telegram without an SMS verification code?
Yes, when a code arrives in the Telegram app on another logged-in device, or by accepting a voice or flash call instead. You cannot log in with no code at all: some channel has to deliver it.
4Why am I not receiving the 6 digit code even though it says sent?
Check the Telegram service chat on every device you own, including Telegram Desktop and Telegram Web. If SMS was the channel, look for a full inbox, a third-party SMS blocker, or carrier filtering of automated messages, then retry on mobile data.
5I rented a number and Telegram says the code went to the app. What now?
The number already has a Telegram account from a previous holder, so the code is going to that account's session and SMS will not follow. Cancel the rental (a one-time number that receives no code refunds automatically) and register with a fresh number.
6Does deleting Telegram change where the code goes?
Removing the app does not end the session. Only terminating sessions (Settings, Devices) removes the in-app delivery channel and pushes the next code to SMS.
Get a Telegram code on a number you control
Non-VoIP carrier numbers for one-time codes, multi-day rentals, or a dedicated monthly line for accounts you keep.