Api.Airforce
KHẮC PHỤC SỰ CỐ

Trước khi báo cáo Bug

Hầu hết các "bug" đều là vấn đề cấu hình bạn có thể sửa trong 60 giây — hãy chạy qua danh sách kiểm tra này trước.

Nếu có gì đó không hoạt động, cách nhanh nhất để biết lỗi nằm ở phía bạn hay phía chúng tôi là chạy cùng một yêu cầu từ một công cụ khác.

Khoảng 9 trên 10 báo cáo "API bị lỗi" hóa ra là do cấu hình sai base URL, API key cũ, tên model sai, hoặc cấu trúc request body từ một hướng dẫn đã lỗi thời ba phiên bản SDK.

Kiểm tra nhanh

Sao chép lệnh curl này vào terminal. Thay YOUR_KEY bằng API key của bạn từ dashboard rồi chạy. Nếu bạn nhận được kết quả completion bình thường, API key, mạng và backend của chúng tôi đều hoạt động tốt — bất kỳ lỗi nào là trong code client hoặc môi trường của bạn.

cURL

curl https://api.airforce/v1/chat/completions \
  -H "Authorization: Bearer sk-air-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4.1-mini",
    "messages": [{"role": "user", "content": "ping"}]
  }'
ℹ️
Kiểm tra nhanh: Không có terminal? Dán cùng model + prompt vào Playground từ dashboard — tác dụng tương tự, không cần cài đặt.

Danh sách kiểm tra từng bước

API key của bạn có hợp lệ không?

Mở Dashboard → API Keys và xác nhận key khớp với những gì code của bạn sử dụng. Một bẫy phổ biến là khoảng trắng trước tiền tố "sk-air-" do sao chép-dán.

Triệu chứng: 401 Unauthorized.

Base URL có đúng không?

Base URL phải là https://api.airforce/v1 — không phải http, và hậu tố /v1 là bắt buộc. Các hướng dẫn ra đời trước khi OpenAI có đường dẫn v1 đôi khi bỏ qua phần này.

Triệu chứng: 404 Not Found, hoặc curl bị treo.

Tên model có được viết đúng không?

Model ID phân biệt chữ hoa và thường. Truy cập trang Models hoặc gọi GET /v1/models để xác nhận ID chính xác. Lỗi đánh máy hoặc model đã bị ngừng hỗ trợ sẽ trả về lỗi rõ ràng thay vì "hoạt động nhưng sai".

Triệu chứng: 400 unknown_model hoặc 404 model_not_found.

Request body có đúng cấu trúc không?

Chat completions dùng mảng messages. Hình ảnh dùng prompt + n. Audio TTS dùng input + voice. Gửi body dạng chat đến /v1/images/generations sẽ trả về 400 — dễ bỏ sót khi sao chép đoạn code giữa các tài liệu.

Triệu chứng: 400 kèm tên trường vi phạm trong response body.

Bạn có vượt giới hạn tốc độ hoặc hạn mức không?

429 = quá nhiều yêu cầu trong phút này. 402 = gói hoặc số dư của bạn đã cạn. Cả hai đều hiển thị trên Dashboard. Yêu cầu gói miễn phí có giới hạn riêng so với yêu cầu gói trả phí, vì vậy một model trả phí có thể trả lời tốt trong khi model miễn phí bị giới hạn tốc độ.

Triệu chứng: 429 Too Many Requests hoặc 402 Payment Required.

Model có thực sự đang hoạt động không?

Kiểm tra trang Models — sự cố nhà cung cấp sẽ hiển thị là "degraded" hoặc "major outage". Nếu một model bị ngừng trong khi các model khác vẫn hoạt động, đó là sự cố từ phía nhà cung cấp mà chúng tôi định tuyến xung quanh, không phải lỗi client.

Triệu chứng: một model cụ thể trả về 5xx trong khi các model khác hoạt động.

Ý nghĩa các mã HTTP Status

Mỗi phản hồi lỗi đều mang một mã HTTP status chuẩn. Hiểu rõ từng mã sẽ giúp bạn tiết kiệm một ticket.

400Phía bạn400 Bad Request — JSON sai định dạng, thiếu trường bắt buộc, tham số không hợp lệ. Sửa lại request body.
401Phía bạn401 Unauthorized — API key bị thiếu hoặc không hợp lệ. Kiểm tra header Authorization có chứa tiền tố "Bearer " hay chưa.
402Phía bạn402 Payment Required — gói đã hết hạn hoặc số dư Pay-as-you-go trống. Hãy đăng ký hoặc nạp thêm.
403Phía bạn403 Forbidden — gói hoặc quyền theo key của bạn không cho phép model hoặc endpoint này.
404Phía bạn404 Not Found — endpoint hoặc model ID không tồn tại. Kiểm tra đường dẫn URL và cách viết tên model.
413Phía bạn413 Payload Too Large — đầu vào vượt quá context window của model. Hãy rút ngắn prompt.
429Phía bạn429 Too Many Requests — bị giới hạn tốc độ (RPM, RPD hoặc giới hạn token hàng ngày). Giảm tốc độ hoặc nâng cấp gói.
500Phía chúng tôi500 Internal Server Error — lỗi phía chúng tôi. Hãy báo cáo nếu lỗi kéo dài hơn một phút.
502Phía chúng tôi502 Bad Gateway — backend đang khởi động lại (chúng tôi triển khai vài lần mỗi ngày). Chờ 5–10 giây rồi thử lại.
503Phía chúng tôi503 Service Unavailable — mọi upstream provider cho model đó đều thất bại cùng lúc. Báo cáo nếu tình trạng kéo dài hơn vài phút.
💡
Nguyên tắc cơ bản: Mã 4xx có nghĩa là client của bạn đã làm gì đó mà server từ chối. Mã 5xx có nghĩa là chúng tôi không xử lý được một yêu cầu hợp lệ. Phần JSON error body trong response thường chỉ rõ trường gây ra lỗi.

Khi nào thực sự là Bug

Nếu lệnh curl tự kiểm tra ở trên hoạt động nhưng cùng một yêu cầu từ code của bạn lại không, vấn đề nằm ở client của bạn (hoặc thư viện mà nó sử dụng). Nếu bản thân lệnh tự kiểm tra thất bại với 5xx, hoặc trả về 4xx với thông báo không khớp với yêu cầu của bạn, đó là điều đáng báo cáo.

Cách báo cáo hiệu quả

Mở ticket hỗ trợ từ dashboard hoặc đăng trong #support trên Discord. Đính kèm:

  • Mã HTTP status đầy đủ và response body (cả header cf-ray nếu có).
  • Thời điểm gần đúng theo UTC.
  • Tên model và endpoint bạn đã gọi.
  • Một lệnh cURL tối giản để tái hiện lỗi (che đi API key thật của bạn!).
  • Lệnh tự kiểm tra ở trên có hoạt động với key đó không.
ℹ️
Cách báo cáo hiệu quả: Ticket nào đến kèm đủ thông tin này sẽ nhận được câu trả lời thực sự ngay lần đầu. Ticket thiếu thông tin hầu như luôn cần qua lại nhiều lần trước khi chúng tôi có thể hỗ trợ.

Hỏi trong #support trên Discord

Gặp khó khi thiết lập hoặc muốn key miễn phí? Hỏi cộng đồng trên Discord của chúng tôi.

Tham gia Discord của chúng tôi