529 là lỗi Claude duy nhất không do mã của bạn gây ra: chính Anthropic đang quá tải. Không thể sửa nguyên nhân — chỉ có thể hấp thụ lỗi đúng cách. Điều đó có nghĩa là retry kiên nhẫn, chuẩn bị một mô hình dự phòng và tuyệt đối không làm sự cố trầm trọng hơn bằng các lần thử ngay lập tức.
Lỗi
{
"type": "error",
"error": { "type": "overloaded_error",
"message": "Overloaded" }
}Tổng quan nguyên nhân và cách khắc phục
| Nguyên nhân | Cách khắc phục |
|---|---|
| Nhà cung cấp quá tải (ngày ra mắt, sự cố khu vực) | Backoff lũy thừa kèm jitter. Hãy xem trang trạng thái của nhà cung cấp thay vì triển khai lại. |
| Lưu lượng tăng đột biến của bạn rơi đúng lúc xảy ra sự cố một phần | Phân phối các job theo lô; thường chờ mười phút là đủ để giải quyết. |
| Vòng lặp retry ngay lập tức | Thử lại ngay lập tức làm tăng tải và kéo dài sự cố cho tất cả mọi người, bao gồm cả bạn. |
Hãy retry như một công dân tốt
Xử lý 529 như 429 không có tiêu đề retry-after: backoff hàm mũ bắt đầu khoảng 2 giây, có jitter, trần 30–60 giây, dừng sau khoảng 5 lần thử và đưa công việc vào hàng đợi. Có thể dùng cùng nhánh mã xử lý 429 cho 529.
import time, random
from openai import APIStatusError
def com_retry(fn, tentativas=5):
for i in range(tentativas):
try:
return fn()
except APIStatusError as e:
if e.status_code not in (429, 500, 529):
raise
espera = min(2 ** i + random.random(), 60)
time.sleep(espera)
raise RuntimeError("esgotou as tentativas")Đổi mô hình thay vì dừng lại
Trong các đường dẫn nhạy với độ trễ, hãy xác định một mô hình dự phòng: trong cùng họ mô hình (Sonnet → Haiku), hành vi vẫn tương tự; giữa các nhà cung cấp (Claude → GPT), bạn có thể vượt qua toàn bộ một sự cố. Trên endpoint tương thích với OpenAI, đây chỉ là việc đổi một chuỗi.
PREFERIDOS = ["claude-sonnet-5", "claude-haiku-4-5", "gpt-5-6-terra"]
def completar(mensagens):
ultimo = None
for modelo in PREFERIDOS:
try:
return client.chat.completions.create(
model=modelo, messages=mensagens, max_tokens=800)
except APIStatusError as e:
if e.status_code not in (429, 500, 529):
raise
ultimo = e # saturado — tenta o próximo
raise ultimoĐừng nhầm 529 với 429 hoặc 402
429 nghĩa là bạn đã vượt giới hạn của mình (máy chủ vẫn hoạt động tốt). 529 nghĩa là máy chủ quá tải (hạn ngạch của bạn vẫn ổn). 402 nghĩa là số dư không đủ. Cả ba trông giống nhau trong log nhưng cách khắc phục hoàn toàn khác: chỉ 429 và 529 nên được retry.
Nếu bạn gọi qua Kunavo
Tại Kunavo, cùng một danh mục đa mô hình nằm sau một khóa duy nhất và một ví duy nhất, nên chuyển đổi dự phòng giữa các nhà cung cấp như ví dụ trên chỉ là đổi tên mô hình — không cần tài khoản thứ hai hay đăng ký thứ hai. Các yêu cầu thất bại không bị tính phí. Năng lực và giá là hai câu hỏi riêng; về câu hỏi thứ hai, xem mức phí mỗi token tại hướng dẫn giá API Claude của chúng tôi.
Câu hỏi thường gặp
Lỗi 529 có phải do tôi không?
Không. Đây là vấn đề về năng lực phía nhà cung cấp. Trách nhiệm duy nhất của bạn là không làm vấn đề trầm trọng hơn (backoff có jitter) và chuẩn bị nơi chuyển sang nếu sự cố kéo dài hơn ngân sách độ trễ của bạn.
529 khác 429 như thế nào?
429 nghĩa là bạn đã vượt giới hạn; 529 nghĩa là máy chủ quá tải. Cả hai đều có thể retry, nhưng chỉ 429 thường đi kèm gợi ý retry-after.
Tôi có bị tính phí cho yêu cầu trả về 529 không?
Thông thường là không — yêu cầu không tạo ra token. Tại Kunavo, các yêu cầu thất bại không bị trừ vào số dư.
Hướng dẫn liên quan
- Lỗi 429 rate_limit_error trong Claude API — ý nghĩa và cách khắc phục
- Lỗi 401 authentication_error / invalid x-api-key — cần kiểm tra gì, theo thứ tự
- Claude API 529 overloaded_error — lỗi này là gì và cách vượt qua
Thông tin chi tiết hơn về ý nghĩa lỗi có trong tài liệu tham chiếu lỗi; bạn chỉ mất một phút để lấy khóa qua đăng ký và hướng dẫn xác thực.