Key Takeaways
- Laravel SMS gateway troubleshooting is split-brain: queue worker, HTTP 4xx, pairing/OEM, DLR unknown, empty pulsa.
- horizon:pause is not a radio outage. A green Pixel is not a processed job.
- There is no Laravel SDK to “reinstall.” Confirm live fields in Developer Center.
- Never paste OTP bodies into tickets. Template + timestamp is enough.
- Priced by devices and SMS send volume. You use your own phone and operator SMS credit. A retry storm after a “fix” still spends operator credit.
Name the layer before you tail logs
Laravel SMS gateway troubleshooting is rarely “the framework is broken.” It is queue vs JSON vs radio vs wallet. Laravel send SMS. Device setup. Developer Center.
If step one is php artisan cache:clear, you are gambling. Ask whether the job ran, then whether GSM left the tray.Laravel symptom → owner
| Symptom | Look at | Not |
|---|---|---|
| Nothing in failed_jobs, nothing sent | Dispatch / Horizon down | The SIM |
| 401 / 422 | Token, JSON shape | OEM battery |
| 201, no inbox | DLR, pairing, pulsa | Another composer require |
| Queued forever | Permission denied | Laravel config cache only |
| Sends pause after a burst | Free/Developer cap or airtime | “Unlimited SMS” folklore |
Workers that never ran
Supervisor / Horizon must outlive the deploy. Sync ShouldQueue jobs in local .env lie about production. Version your integrations.
A 15-minute triage
- Confirm the job executed. Failed jobs table / Horizon. A listener that never dispatched is not GSM.
- Read the HTTP status. 4xx = your JSON/auth. 429 = backoff. 5xx = retry with jitter, not a hammer.
- Check pairing and OEM battery. Permission denied and Doze look like “Laravel timeout.”
- Check DLR, not only the log line. Submitted ≠ delivered. Timeout unknown in the UI.
- Check pulsa and plan cap. Free is 300 SMS lifetime. Developer yearly cap. Operator prepaid is separate.
- Staff canary on the same code path. Then customers. Do not load-test filters.
Webhooks: webhooks troubleshooting. Load-test ethics: load test carefully.
When Laravel is innocent
Dual SIM still one seat. Multi-device. OTP isolation: OTP verification.
Failed jobs still billed twice sometimes
Service pricing is based on device count and total SMS sent through the gateway. You need a working Android phone with a SIM and SMS credit from your mobile operator. Operator message costs are yours—we do not sell carrier SMS balance. Paid from $19/month. Device and SMS volume pricing. A job that POSTed then timed out may already have queued GSM — idempotency keys matter.
Next steps
Job, HTTP, pair, DLR, wallet — in that order. Then stop reinstalling a Laravel SDK that was never the patient.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- SMS API documentationLive endpoint reference
- PHP REST send samplesPHP code examples
- device and SMS volume pricingPlans and allowances
- Android SMS gateway product guideDefinition, product, and how to buy





