Key Takeaways
- USSD is a circuit-style session with the operator, not a bulk SMS product. Timeouts are expected.
- Balance-check codes that work in the phone dialer can still fail from automation: slot, version, roaming, menu changes.
- USSD does not consume the same path as SMS. Empty SMS prepaid can coexist with a working *# session — or the reverse.
- Keep OTP radios free. A hung USSD dialog can occupy the modem.
- You bring the Android and operator credit. Platform pricing is devices plus SMS send volume — USSD is not a third credit pack we sell.
android sms gateway ussd troubleshooting is a session debugger, not an SMS retry loop. Pillar: USSD balance and menu automation. This spoke is “it worked in the dialer” versus hung sessions — not a rewrite of that page.
Live fields: Developer Center. You bring the phone and operator relationship. Devices and SMS volume still describe the SMS product.
Session · wait for the operator
A USSD timeout is often the network hanging up, not your JSON.
USSD is not SMS
SMS goes to an SMSC. USSD holds a short interactive session. DLR language does not apply. Gateway overview. REST samples are HTTPS/JSON wrappers around that session — not a USSD SDK product.
If the native dialer cannot complete *141# on that SIM, automation will not either. Fix the radio first.
Failure table
| Symptom | Likely cause | Check | Fix |
|---|---|---|---|
| Immediate fail | Wrong slot / no voice/USSD service | Dialer on that SIM | Slot map; operator pack |
| Hang then timeout | Operator menu / congestion | Retry budget, backoff | Treat as expected; alert, don’t hammer |
| Works on Android 10, not 7 | API floor (8+) | OS version | Use a supported handset |
| SMS sends, USSD fails | Different service | Not prepaid SMS empty | Do not “top up SMS” as the only fix |
SIM, slot, and Android version
Dual SIM: USSD follows the slot you think it does until a reboot. Dual SIM. Roaming menus differ. Operator codes change without a changelog. Permissions still matter for call/USSD related grants on some OEMs.
Timeouts are normal
Idempotent “check balance once per morning” beats a loop. Incidents. Do not page SRE for every operator timeout. GSMA is industry context, not your runbook.
Do not block OTP on a USSD session
Run balance checks on a utility SIM or off-peak. OTP. SMS backlog: queue backlog. Consent/STOP is an SMS promo topic, not USSD. Messaging practices.
Next steps
Native dialer canary on the production slot, then one automated session with a long timeout. Install the app. Use 300 lifetime SMS to prove the SMS path is unrelated before you mix the two in a ticket.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- USSD balance and menu automationOperator USSD codes
- SMS API documentationLive endpoint reference
- device and SMS volume pricingPlans and allowances
- Android SMS gateway product guideDefinition, product, and how to buy





