Lỗi production khác lỗi local
Trên máy bạn mọi thứ chạy ngon, nhưng user thật báo "trang trắng", "bấm nút không được". Lỗi production khó vì bạn không thấy trực tiếp — bạn phải đọc log. Đây là kỹ năng vận hành quan trọng nhất.
Log nằm ở đâu?
| Nguồn log | Cho biết gì | Truy cập |
|---|---|---|
| Vercel Logs | Lỗi build, lỗi runtime của server/function, request | Vercel → Project → Logs / Deployments |
| Supabase Logs | Lỗi query, RLS từ chối, auth, API | Supabase → Logs (Postgres, API, Auth) |
| Browser Console | Lỗi phía client (JS) | F12 → Console trên máy user (nhờ họ chụp) |
Quy tắc chẩn đoán: trang trắng / lỗi sau khi bấm → xem Vercel runtime log + browser console. Dữ liệu không lưu / không hiện → xem Supabase log (thường là RLS chặn hoặc query sai).
Quy trình debug production với AI
Bước 1 — Tái hiện & thu thập: lấy log lỗi quanh thời điểm sự cố. Ghi lại: user làm gì, lỗi gì hiện ra.
Bước 2 — Đưa log cho AI phân tích:
"App production lỗi: user bấm 'Lưu' thì không có gì xảy ra. Vercel runtime log dòng này: [dán log]. Supabase log báo: [dán log]. Phân tích nguyên nhân gốc và đề xuất cách sửa."
Bước 3 — Sửa có kiểm chứng: AI đề xuất fix → bạn áp dụng → test trên preview deployment trước, rồi mới push lên production.
Lỗi production kinh điển & cách nhận diện
| Triệu chứng | Nghi phạm hàng đầu |
|---|---|
| Local OK, production lỗi ngay khi load | Thiếu environment variable |
| Dữ liệu không lưu/không hiện cho user đã đăng nhập | RLS policy chặn (thiếu policy hoặc sai điều kiện) |
| Nút bấm không phản hồi | Lỗi JS client (xem console), hoặc Server Action throw |
| Chậm bất thường | Query thiếu index, N+1 query |
💡 Bài học chống "sửa mò": một tín hiệu lỗi có thể nhiều nguyên nhân. Trước khi đổi config/restart, xác nhận log thật sự chỉ về đúng nguyên nhân đó — đừng sửa theo phỏng đoán.
Nguyên tắc vận hành
- Log là sự thật, phỏng đoán là giả thuyết. Luôn mở log trước khi sửa.
- Đừng test fix thẳng trên production. Dùng preview deployment.
- Lỗi RLS rất hay gặp khi vibe code — nhớ kiểm tra policy khi "dữ liệu không hiện".
- Lưu lại lỗi đã gặp + cách sửa vào file ghi chú dự án (CLAUDE.md) để lần sau xử nhanh.
Bài tập
Cố tình tạo một lỗi (xoá một env var trên preview, hoặc bật RLS mà chưa có policy), quan sát nó biểu hiện thế nào, đọc log, rồi nhờ AI giúp truy nguyên. Luyện phản xạ "lỗi → log → nguyên nhân".
