Bỏ qua tới nội dung
RexAPFTài liệuMở RexAPF Web
Tài liệuAPITham chiếu
API

Mã lỗi và giới hạn của API Gateway

Ý nghĩa các mã HTTP 400–504 từ API Gateway, mã lỗi chi tiết và cách xử lý khi hết credit, hết hạn mức hoặc chạm giới hạn.

4 phút đọc
Trên trang này
  1. Định dạng lỗi
  2. Lỗi xác thực và quyền
  3. Lỗi thanh toán
  4. Giới hạn và lỗi 429
  5. Lỗi yêu cầu và máy chủ
  6. Xử lý lỗi trong ứng dụng
  7. Phân loại theo mã HTTP
  8. Thử lại có giãn cách với 429 và 5xx
  9. Kiểm tra bảng điều khiển
  10. Liên quan

Khi một yêu cầu không thành công, API Gateway trả mã HTTP kèm thân JSON theo dạng OpenAI. Đọc trường code để biết chính xác nguyên nhân.

Định dạng lỗi

json
{
  "error": {
    "message": "Insufficient credit. Top up via VietQR at your dashboard billing page to continue using the API.",
    "type": "billing_error",
    "code": "insufficient_credit"
  }
}
  • message — mô tả bằng tiếng Anh.
  • type — nhóm lỗi, ví dụ authentication_error, billing_error, permission_error.
  • code — mã chi tiết, dùng để xử lý trong mã nguồn.

Thông báo lỗi từ nhà cung cấp phía sau được làm sạch trước khi trả về, nên bạn không thấy tên nhà cung cấp hay URL nội bộ.

Lỗi xác thực và quyền

HTTPcodeNguyên nhânCách xử lý
401invalid_api_keyThiếu khoá hoặc khoá không đúngKiểm tra header Authorization: Bearer hoặc x-api-key
401api_key_revokedKhoá đã bị thu hồiTạo khoá mới ở Khoá API
403account_suspendedTài khoản bị tạm khoáLiên hệ hỗ trợ
403model_not_allowedModel không có trong gói hiện tạiChọn model khác hoặc nâng gói
403subscription_required_for_free_modelModel miễn phí cần gói thuê bao đang hoạt độngMua gói ở API Gateway › Thanh toán

Lỗi thanh toán

HTTPcodeNguyên nhân
402insufficient_creditKhông có gói còn hạn và số dư credit bằng 0
402subscription_expiredGói đã hết hạn và không còn credit

Lỗi 402 kèm trường recovery_url trỏ tới trang thanh toán. Xem Sử dụng & thanh toán để nạp credit hoặc gia hạn.

Giới hạn và lỗi 429

API Gateway áp dụng các giới hạn sau:

  • Ngân sách cửa sổ của gói — mỗi gói có ngân sách theo cửa sổ 5 giờ hoặc 24 giờ. Hết ngân sách, yêu cầu nhận 429 mã plan_usage_window_limit; thông báo cho biết thời điểm đặt lại (Resets at …).
  • Giới hạn chi tiêu ngày/tháng — nếu bạn đặt mức chi tiêu tối đa, vượt mức nhận 429 mã daily_spending_limit hoặc monthly_spending_limit.
  • RPM — số yêu cầu mỗi phút theo gói, hiển thị ở dòng RPM trong thẻ Hạn mức gói.
  • Số khoá — số khoá đang hoạt động tối đa theo gói. Tạo vượt mức nhận 403 mã key_limit_reached.
Tránh bị chặn khi hết ngân sách cửa sổ

Bật Chuyển sang dùng credit khi hết hạn mức trong thẻ Hạn mức gói. Khi ngân sách cửa sổ hết, yêu cầu sẽ trừ vào số dư credit thay vì nhận 429.

Lỗi yêu cầu và máy chủ

HTTPÝ nghĩa thường gặp
400JSON không hợp lệ, thiếu model (Missing model) hoặc định dạng model sai
404Model không tồn tại hoặc hiện không có tuyến phục vụ
406Model không hỗ trợ loại yêu cầu này
500Lỗi nội bộ
502Nhà cung cấp phía sau trả lỗi
503Dịch vụ tạm thời không khả dụng, mọi tuyến của model đang bận hoặc lỗi
504Hết thời gian chờ

Với 503, hãy chạy Health Check ở API Gateway › Model để xem model có đang Không phản hồi không.

Xử lý lỗi trong ứng dụng

  1. Phân loại theo mã HTTP

    Không thử lại với 400, 401, 402, 403: lỗi sẽ lặp lại cho tới khi bạn sửa yêu cầu, khoá hoặc tài khoản.

  2. Thử lại có giãn cách với 429 và 5xx

    Đọc header Retry-After nếu có. Nếu không có, chờ tăng dần (1 giây, 2 giây, 4 giây…) và giới hạn số lần thử.

  3. Kiểm tra bảng điều khiển

    Xem API Gateway › Tổng quan để biết hạn mức còn lại, và Sử dụng › Lịch sử để đối chiếu yêu cầu.

retry.ts
async function callWithRetry(fn: () => Promise<Response>, max = 4) {
  for (let i = 0; ; i++) {
    const res = await fn();
    if (res.ok || i >= max || (res.status !== 429 && res.status < 500)) return res;
    const wait = Number(res.headers.get("Retry-After")) || 2 ** i;
    await new Promise((r) => setTimeout(r, wait * 1000));
  }
}
Lỗi 429 do hết ngân sách cửa sổ

Thử lại liên tục không giúp được khi gặp plan_usage_window_limit. Hãy chờ tới thời điểm đặt lại, dùng Đặt lại hạn mức, hoặc bật dùng credit khi hết hạn mức.

Liên quan

Trang này có hữu ích không?Cập nhật 22/10/2026