SMS eSMS FAIL triage — 200 OK · không nhận SMS
Domain: D-AUTH · WP: WP-AUTH-SMS-01 Ngày: 2026-08-14 · OWNER symptom:
no_sms— app/API OK, máy không nhận SMS brand WELIFE Agent: không blast lại trừblast ok+ SĐT
1. Phân loại
| Mục | Giá trị |
|---|---|
| Layer | eSMS / telco / brand (sau Nest) |
| API surface | POST /api/v1/auth/otp/send trả 200 → Nest + eSMS CodeResult=100 |
| FE | Bước OTP (step=code) mở được |
| Delivery | FAIL / PENDING tới máy |
Ý nghĩa: WELIFE đã chấp nhận request gửi (hoặc ít nhất eSMS API báo thành công). Lỗi thường không nằm ở FE wire Nest — nằm ở portal eSMS · brand · credit · lọc tin · SĐT.
Nếu thật sự là 503 trên app → đây không phải class no_sms (đổi triage sang adapter).
2. Checklist OWNER (theo thứ tự)
| # | Kiểm tra | Pass nếu | Fail → làm gì |
|---|---|---|---|
| 1 | App trỏ prod | EXPO_PUBLIC_API_URL=https://api.minhtien.cloud/api/v1 |
Đổi URL · reload -c |
| 2 | Hint sau Gửi | Có chữ WELIFE / không hiện devOtp |
Nếu devOtp → đang local console |
| 3 | Đợi 1–3 phút · spam / tin nhắn rác | SMS đến | Tiếp #4 |
| 4 | Portal eSMS → lịch sử gửi | Có bản ghi SĐT · status | Không có bản ghi → VPS log / keys |
| 5 | Brand WELIFE đã duyệt cho OTP (SmsType=2) |
Brand active | Xin duyệt brand / đổi SmsType theo tài liệu eSMS |
| 6 | Số credit | Còn tiền | Nạp credit |
| 7 | SĐT đúng E.164 | +84 + 9 số · đúng máy đang cầm |
Thử số khác |
| 8 | VPS log Nest | Dòng eSMS / SMSID (không leak secret) | Restart API · xác nhận SMS_PROVIDER=esms |
3. Logic (vì sao 200 mà không có tin)
App 200
← Nest smsSent=true, smsProvider=esms
← eSMS CodeResult == "100" + SMSID
→ Telco queue / brand filter / spam / delay / wrong MSISDN
Nest không biết máy đã nhận tin — chỉ biết eSMS API chấp nhận.
4. Agent đề xuất tiếp (chọn 1)
- OWNER portal — chụp / ghi status bản ghi gửi gần nhất (che SĐT giữa) → nhắn
SMS eSMS fail: portal=<status>. blast ok++84…— agent gửi 1 lần prod, báo lạismsProvider/smsSent(không in OTP); OWNER đối chiếu portal ngay sau đó.- Retry app sau khi brand/credit OK → nếu nhận được:
SMS eSMS done.
Không invent WP code trừ khi OWNER yêu cầu (vd. trả messageId ra response debug).
5. Cập nhật STATUS
| Gate | Trước | Sau triage |
|---|---|---|
| SMS e2e | PENDING | FAIL delivery (no_sms) · keys vẫn READY · FE vẫn IMP |
Domain: D-AUTH
WP: WP-AUTH-SMS-01
Status: FAIL (no_sms / delivery)
Next: portal check | blast ok + SĐT | SMS eSMS done