رسائل أخطاء النشر أصبحت تقول ما حدث، بكلمات بسيطة
عندما يفشل النشر على Mythex، تخبرك النافذة الآن في جملة واحدة بسيطة بما حدث: فشل البناء، أو توقف تطبيقك بعد بدئه، أو لم يبدأ تطبيقك أبداً، أو أن الملف كبير جداً، أو أن شيئاً ما حدث من جانبنا. وتعرض زرّي إصلاح بالذكاء الاصطناعي وحاول مرة أخرى. ما زال المخرج الخام من البناء ومن تطبيقك يصل إلى الوكيل، فيستطيع قراءته وإصلاح المشروع، لكنك لم تعد مضطراً إلى قراءته بنفسك.
ما الذي تغيّر
جملة واحدة يمكنك التصرف بناءً عليها
كل نشر فاشل له الآن نوع، يُحدَّد لحظة الفشل من حقائق متاحة هناك، مثل الخطوة التي فشلت، وما إذا أبلغت آلة التطبيق عن أعطال، وما إذا كان قد بدأ قبول الاتصالات أصلاً، وليس من خلال قراءة نص الخطأ لاحقاً. ولكل نوع رسالته الخاصة:
| ما تراه | ماذا يعني |
|---|---|
| "فشل البناء." | أمر البناء في مشروعك أو Dockerfile لم يُنتج بناءً ناجحاً. |
| "توقف تطبيقك مباشرةً بعد بدئه." | نُشر، ثم خرج أو ظل يعيد التشغيل. |
| "لم يبدأ تطبيقك بعد النشر." | نُشر، لكنه لم يبدأ قبول الاتصالات. |
| "هذا الملف كبير جداً" / عدد ملفات كبير | موقع ثابت يتجاوز حد حجم الملف أو عدد الملفات. وتسرد الرسالة الملفات. |
| "لا يمكن استخدام اسم الرابط هذا للنشر." | غيّر اسم الرابط وانشر من جديد؛ كودك سليم. |
| "النشر مشغول لحظة" | لا يوجد خطأ في تطبيقك. انشر مرة أخرى بعد بضع دقائق. |
| "…مشكلة من جانبنا، وليست في تطبيقك." | مسؤوليتنا نحن. انشر مرة أخرى بعد بضع دقائق. |
إصلاح بالذكاء الاصطناعي في كل حالة فشل
تعرض كل حالة فشل إصلاح بالذكاء الاصطناعي وحاول مرة أخرى. عند استخدام إصلاح بالذكاء الاصطناعي، يتلقى الوكيل نوع الفشل والمخرج الكامل للبناء أو للتطبيق، بشكل خاص في سياقه. إذا كان هناك خطأ في تطبيقك، يصلحه. وإذا لم يكن هناك خطأ، كأن يكون النشر مشغولاً أو تكون المشكلة من جانبنا، يستطيع ببساطة أن ينشر مرة أخرى. لا تحتاج إلى معرفة أي نوع من الفشل حدث.
مشكلات بعد الإطلاق
قد ينجح النشر ثم يفشل التطبيق بعد دقائق. يفحص Mythex التطبيقات المنشورة بانتظام. إذا تعطل تطبيق حي مراراً، أو ظل يعمل دون أن يقبل الاتصالات، يُعلَّم النشر بأنه فشل، وتصلك رسالة بالبريد، ويعرض المشروع الرسالة مع إصلاح بالذكاء الاصطناعي. وما طبعه التطبيق يُحفظ ليقرأه الوكيل.
فحص الحجم قبل الرفع
بالنسبة للمواقع الثابتة، يُفحص حجم كل ملف وإجمالي عدد الملفات قبل رفع أي شيء. إذا تجاوز شيء الحد، تصلك رسالة واحدة تسرد كل ملف كبير أكثر من اللازم، بدلاً من فشل يحدث في منتصف الطريق.
لماذا بنيناه
كان النشر الفاشل يعرض ما تطبعه الأدوات الخلفية للنشر. وفي أسبوع واحد في أواخر سبتمبر، كانت معظم حالات الفشل تعرض نصاً من أدوات البناء يخصنا نحن لا أصحابها: معلومات الفوترة، وأرقام الإصدارات الداخلية، ومسارات السجل، وأخطاء التخزين. وكان إصلاح بالذكاء الاصطناعي يلصق ذلك النص نفسه في المحادثة. أي أن الناس كانوا يُطلب منهم إصلاح بنيتنا التحتية.
وكان بعضه خاطئاً ببساطة. تطبيق لم يستمع على منفذه كان يُعرض على أنه «مشكلة من جانبنا»، بينما الإصلاح كان في التطبيق نفسه. وكان ملف فوق حد الحجم يُعرض بالطريقة نفسها، ونشر مرة أخرى لن ينجح أبداً.
وكان كل جزء في Mythex يتفاعل مع الفشل، من النافذة والإشعارات وإصلاح بالذكاء الاصطناعي وتنبيهاتنا الداخلية، يحاول معرفة ما حدث بمطابقة كلمات في نص الخطأ. وهذا ينكسر عندما تتغير الصياغة. الآن يُسجَّل النوع في المكان الذي يحدث فيه الفشل، وكل شيء آخر يقرأ النوع.
طبّقنا القاعدة نفسها على أخطاء أخرى أثناء العمل:
- المحادثة. إذا انقطع الاتصال أثناء بث رد، تري الآن جملتنا بدلاً من «Load failed» أو «Failed to fetch» من المتصفح.
- النطاقات المخصصة. تُختار الرسائل المتعلقة بشراء النطاق أو ربطه من حالة الرد ورموزه، بدلاً من تمرير جمل مزوّد النطاق نفسها.
- توليد الصور. تعرض البطاقة رسالتنا، ويحصل الوكيل على تفاصيل الخدمة.
كيف تستخدمه
- انشر كالمعتاد من زر نشر.
- إذا فشل، اقرأ الرسالة المكونة من سطر واحد في النافذة.
- اضغط إصلاح بالذكاء الاصطناعي. يقرأ الوكيل مخرجات البناء أو سجلات تطبيقك، ويصلح ما هو خاطئ، وينشر من جديد إذا لم يكن في التطبيق ما يحتاج إلى إصلاح.
- أو اضغط حاول مرة أخرى لنشر الإصدار نفسه مرة أخرى، وهو الخيار الصحيح لرسالتي «مشغول لحظة» و«مشكلة من جانبنا».
- إذا كانت الرسالة متعلقة باسم الرابط، فغيّر اسم الرابط قبل النشر مرة أخرى. وفي أي خطأ آخر، أبقِ الاسم نفسه.
الحدود
- بعض حالات الفشل تعرض أزراراً مختلفة: فاسم الرابط المأخوذ يقترح أسماء بديلة، ونفاد الرصيد يعرض إضافة رصيد بدلاً من ذلك.
- للمواقع الثابتة حد لحجم كل ملف يبلغ نحو 25 إلى 30 ميغابايت، بحسب نوع الموقع، وحتى 20,000 ملف. والملفات الكبيرة يُفضَّل حفظها في التخزين والإشارة إليها.
- الإخفاقات المنشورة قبل هذا التغيير لا تملك نوعاً، لذلك تعرض سطراً محايداً بدلاً من سبب محدد.
- إذا تكرر «مشكلة من جانبنا»، تواصل مع الدعم مع معرّف المشروع واسم الرابط.
القائمة الكاملة للرسائل وما تفعله حيال كل منها موجودة في استكشاف أخطاء النشر. وإذا كنت تصلح تطبيقاً عنيداً بيدك، فإن دليلنا عن كيف تصحح تطبيقاً بُني بالذكاء الاصطناعي يشرح الخطوات. ولما يحدث لموقعك الحي أثناء إعادة النشر، راجع تبقى تطبيقك المنشور حياً أثناء إعادة نشره.