ARTICLE AD BOX
I am building a SIM registration web application where users enter their mobile number and receive an OTP for verification. However, I am facing an issue where the OTP is sometimes not received, even though the API response shows success.
Setup:
Frontend: JavaScript (Vanilla JS)
Backend: Node.js (Express)
SMS API: Third-party gateway (REST API based)
Problem:
API returns status 200 (success)
OTP is generated correctly on the server
But users do not receive OTP on their phone in some cases
Code Snippet:
async function sendOTP(number) { const response = await fetch('/api/send-otp', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ phone: number }) }); const data = await response.json(); console.log(data); }What I have tried:
Verified API key and SMS gateway balance
Checked number format (with country code)
Tested with multiple numbers
Logged server-side OTP generation
Questions:
What could cause OTP delivery failure despite successful API response?
Are there common rate limits or filtering issues in SMS gateways?
How can I implement retry or fallback logic for better reliability?
Any suggestions or debugging strategies would be helpful.
