خطأ overloaded_error من Anthropic: المعنى والسبب والحل

يشير الخطأ 529 إلى ضغط مؤقت على خدمة Anthropic. عالجه بإعادة محاولة محدودة، وضبط التزامن، وخطة بديلة واضحة.

بقلم فريق benchr · · تم التحقق من توثيق أخطاء API لدى Anthropic في 12 يونيو 2026

AnthropicHTTP 529الخطورة: متوسطةضغط على الخادم

ماذا يقول لك الخطأ 529

كل رمز حالة آخر في جدول Anthropic يشير إلى شيء تتحكم فيه أنت: 401 يعني مفتاحاً خاطئاً، و400 يعني جسم طلب مشوّهاً، و429 يعني أن حسابك بلغ حداً. أما 529 فمختلف: يظهر حين ترتفع الحركة على كل المستخدمين في وقت واحد، ولذلك يخص الجميع لا حسابك وحده. والرسالة حرفية: "The API is temporarily overloaded." يكثر هذا صباح الإطلاق؛ ينزل نموذج جديد، فيجرّبه عدد هائل من المستخدمين، فتخفف المنصة الحمل حتى تبقى متاحة.

فرّق بين 529 و429. تحذّر وثائق Anthropic من أن الزيادة الحادة في استخدام حسابك قد تطلق أخطاء 429 حتى إذا لم تبلغ الحد المعلن. فإذا ظهر الخطأ أثناء رفع حركة تطبيقك، افحص حقل النوع: إن كان rate_limit_error، فراجع دليل الخطأ 429 وارفع المعدل تدريجياً.

جسم الرد

{
  "type": "error",
  "error": {
    "type": "overloaded_error",
    "message": "The API is temporarily overloaded."
  },
  "request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}

ثلاث عادات تستحق أن تربطها في كودك وأنت هنا. فرّع بناءً على حقل type، وفي كود الـ SDK التقط أصناف الاستثناء المعنونة (بايثون يرفع أشياء مثل anthropic.RateLimitError) بدل مطابقة نص الرسائل. احفظ request_id، وهو يصل أيضاً في كل رد كترويسة مسبوقة بـ req_؛ وتذاكر الدعم التي تتضمنه تُحَل أسرع. وإن كنت تستخدم البث، فتذكّر أنه مع الأحداث المُرسَلة من الخادم قد يصل خطأ بعد وصول رمز 200، فسطر حالة نظيف ليس نهاية القصة.

أعد المحاولة على فترات متدرجة

اضبط إعادة المحاولة بفترات متزايدة مع تفاوت عشوائي، كي لا تعيد جميع العمليات الإرسال في اللحظة نفسها. وضع مهلة زمنية إجمالية، وأوقف الاستدعاءات مؤقتاً عند تجاوزها بدلاً من الاستمرار بلا نهاية.

# Python: إعادة محاولة متشتتة تحت مهلة، ثم قطع الدائرة
import random, time
import anthropic

client = anthropic.Anthropic()

def create_with_deadline(deadline_s=120, **kwargs):
    start = time.monotonic()
    attempt = 0
    while time.monotonic() - start < deadline_s:
        try:
            return client.messages.create(**kwargs)
        except anthropic.APIStatusError as e:
            if e.status_code not in (429, 529):
                raise
            attempt += 1
            time.sleep(min(30, 2 ** attempt) * random.random())
    raise RuntimeError("circuit open: still overloaded at deadline")

حين تنفتح الدائرة، توقف عن الاستدعاء. اركن العمل الجديد في طابور، وقدّم النتائج المخزّنة حيث توجد، ولا تجسّ النبض مجدداً إلا بعد فترة تهدئة. عواصف إعادة المحاولة هي الطريقة الوحيدة التي تستطيع بها أن تجعل 529 أسوأ: آلاف العملاء يعيدون تشغيل الطلبات على مؤقّتات متزامنة يحوّلون موجة حركة إلى ظهيرة طويلة.

استعد لفترات الضغط

ضع طابوراً وحداً للتزامن بين منتجك وواجهة API، كي لا تتحول زيادة الطلب إلى موجة استدعاءات جديدة. انقل المهام التي تحتمل الانتظار إلى Batch API، الذي يعمل بخصم 50% على تسعير Claude القياسي. وإذا كان توفر الخدمة مهماً تعاقدياً، فاختبر مزوّداً بديلاً مسبقاً، وقارن تكلفته عبر الحاسبة، واجعل التحويل إليه خياراً واضحاً في الإعدادات.

أسئلة شائعة

هل الخطأ 529 ناتج عن حسابي؟

لا. يشير الخطأ إلى ضغط عام على منصة Anthropic، لا إلى مشكلة خاصة بحسابك. لكن، استخدم فترات انتظار متدرجة ومتفاوتة، لأن إعادة الإرسال المتلاحقة تزيد الضغط.

ما الفرق بين 429 و529؟

يعني 429 (rate_limit_error) أن حسابك بلغ حداً أو رفع معدل الاستخدام بسرعة كبيرة، بينما يعني 529 أن المنصة نفسها تتعرض لضغط عام. افحص نوع الخطأ في الرد قبل اختيار طريقة المعالجة.

هل أبدّل المزوّد حين تتوالى أخطاء 529؟

يمكنك ذلك إذا كان البديل مختبراً ومُسعّراً ومجهزاً مسبقاً. أما إضافة مزوّد جديد أثناء العطل، من دون اختبار، فقد تنقل المشكلة إلى تكامل غير جاهز للإنتاج.

سجل التغييرات

  • — نُشر. تم التحقق من المُطلِق على مستوى المنصة وشكل الرد وإرشادات إعادة المحاولة وفق توثيق أخطاء API لدى Anthropic.

المراجع

  • Anthropic API errors — platform.claude.com/docs/en/api/errors (تم التحقق في 12 يونيو 2026)
  • benchr api-errors.json، السجل المُهيكَل لهذا الخطأ