الأخطاء

كل رموز أخطاء Direct API ومعانيها، وهل تعيد المحاولة، بما في ذلك ما تفعله بعد فشل استدعاء مدفوع بخطأ 5xx.

لكل خطأ الجسم نفسه. افرّع منطقك بناءً على حالة HTTP وcode؛ واعرض description أو error.message على الأشخاص.

{
  "description": "Human-readable explanation, safe to log.",
  "code": "machine_readable_code",
  "data": { "request_id": "…", "…": "…" },
  "error": { "error_code": "…", "message": "…" }
}

تحمل كل استجابة، ناجحة كانت أو خطأ، X-Request-Id. أدرجه عند تواصلك مع الدعم.

رموز الأخطاء

HTTPcodeالمعنىإعادة المحاولة
400invalid_requestJSON مشوّه، أو حقل غير معروف في الجسم، أو فشل input في مخطط الأداة (مع تسمية كل حقل خاطئ)لا، أصلح الطلب
401invalid_api_keyمفتاح مفقود أو مشوّه أو ملغى أو منتهي الصلاحيةلا
402insufficient_creditsلا تستطيع المؤسسة دفع تكلفة الاستدعاءبعد شحن الرصيد
402api_key_credit_limit_reachedسيتجاوز الاستدعاء الحد اليومي أو الشهري أو الإجمالي للمفتاح (يوضح data.period أيها)بعد إعادة ضبط النافذة أو رفع الحد
402subscription_pausedاشتراك المؤسسة متوقف مؤقتًابعد استئنافه
402payment_requiredاشتراك المؤسسة متأخر السدادبعد إتمام الدفع
403direct_api_disabledDirect API غير مفعّلة لهذه المؤسسةلا، تواصل مع Morphic
403insufficient_scopeيفتقر المفتاح إلى النطاق الذي تحتاجه هذه الأداة (data.required_scopes)لا، استخدم مفتاحًا آخر
403plan_upgrade_requiredالنموذج أو الميزة غير متاحين في خطتكلا
403tool_not_availableالأداة تخصم أرصدة والأدوات المدفوعة لم تُفعَّل لمؤسستك بعد (يذكرها data.tool)؛ وتفعّلها جهة الاتصال الخاصة بك في Morphicلا
403model_disabled_by_organizationأوقف أحد مسؤولي المؤسسة هذا النموذج أو الدقة أو خيار الصوت ولم يسمح به لـ APIلا، اسأل المسؤول لديك
404not_foundأداة أو عملية توليد أو ويبهوك غير معروفة، أو خارج نطاق وصول هذا المفتاحلا
409idempotency_conflictأُعيد استخدام Idempotency-Key مع جسم أو أداة مختلفةلا، استخدم مفتاحًا جديدًا
409idempotency_in_progressالطلب الأصلي بهذا المفتاح ما زال قيد التنفيذنعم، بعد ثانية
409idempotency_outcome_unknownالطلب الأصلي بمفتاح Idempotency-Key هذا فشل أو لم يُجب قط بعد أن ربما نُفِّذ، لذا نتيجته مجهولةلا: تحقق من نتيجته، ثم استخدم مفتاحًا جديدًا
413payload_too_largeالجسم يتجاوز 1 MBلا
422tool_refusedالإدخال سليم الصيغة لكن لا يمكن تشغيله؛ ولم يُخصم شيءلا، غيّر الإدخال
429rate_limitedبُلغ حد المعدلنعم، بعد Retry-After
500internal_errorخطأ من جانبناالاستدعاء المجاني: نعم؛ الاستدعاء المدفوع: راجع ما يلي
503service_unavailableضغط مؤقت أو صيانةالاستدعاء المجاني: نعم، مع التراجع التدريجي؛ الاستدعاء المدفوع: راجع ما يلي
504tool_timed_outلم تُجب الأداة خلال 60 ثانية؛ والاستدعاء الذي يبدأ عمليات توليد ربما يكون قد بدأهاالاستدعاء المجاني: نعم؛ الاستدعاء المدفوع: راجع ما يلي

يذكر 422 tool_refused الحقل والقيمة والقيم التي كانت ستنجح؛ راجع رفض الأداة. وعملية التوليد التي تفشل بعد بدئها تُبلغ بـ error.error_code الخاص بها في كائن عملية التوليد، ويُسترد المبلغ المخصوم منها.

الاستدعاء المدفوع الذي يُجيب بـ 500 أو 503 أو 504 ربما بدأ العمل وخصم مقابله قبل أن يفشل. وإعادة محاولته بمفتاح Idempotency-Key نفسه لا تنفّذه مرتين أبدًا: إذ تُجيب إعادة المحاولة بـ 409 idempotency_outcome_unknown.

  1. تحقق مما فعله الاستدعاء: list_generations، أو GET /v1/direct/usage مع التصفية حسب الوقت.
  2. أرسل Idempotency-Key جديدًا فقط للعمل الذي لم يبدأ.

عندما لا تصل أي إجابة على الإطلاق (اتصال منقطع)، أعد المحاولة بالمفتاح نفسه. ستحصل على الإجابة المخزنة، أو على 409 idempotency_in_progress ما دام لا يزال قيد التنفيذ. راجع التكرار الآمن.


إذا واجهت أي مشكلة أو كانت لديك أي أسئلة، فلا تتردد في التواصل معنا. يسعدنا مساعدتك. اكتب لنا على support@morphic.com.

في هذه الصفحة