كيفية إصلاح STORAGE_LIMIT_EXCEEDED في عمليات نشر Salesforce

بلغت المؤسسة المستهدفة حد تخزين البيانات أو الملفات، لذا لا يمكن لعملية النشر إدراج السجلات التي تحتاجها.

تظهر أثناء: DML وقت التشغيل، وغالبًا إعداد اختبار Apex في sandbox صغيرة

المعنى

يعني STORAGE_LIMIT_EXCEEDED أن المؤسسة المستهدفة، عادةً مؤسسة Developer أو sandbox بتخصيص تخزين صغير، ممتلئة. تُحجب معظم عمليات النشر التي تصادف هذا بسبب بيانات إعداد اختبار Apex التي تحاول إدراج سجلات في مؤسسة لم تعد تملك مساحة، وليس بسبب metadata عملية النشر نفسها.

يتتبع Salesforce تخزين البيانات وتخزين الملفات كتخصيصين منفصلين، لذا يمكن أن تُصاب مؤسسة ممتلئة إما بعدد كبير من السجلات أو عدد أصغر من السجلات مع ملفات مرفقة كبيرة؛ لا يوضح نص الخطأ دائمًا أيهما استُنفد.

التشخيص

الأسباب الشائعة

تخصيص تخزين sandbox صغير وشبه ممتلئ
تأتي أنواع مؤسسات Developer وبعض sandbox بتخزين محدود، وتترك البيانات المتراكمة بمرور الوقت مساحة ضئيلة لتشغيل الاختبارات.
ملفات أو مرفقات كبيرة من تشغيلات اختبار متكررة
تتراكم الملفات أو المرفقات التي تنشئها تشغيلات CI أو الاختبار اليدوي ولا يتم تنظيفها أبدًا.
سجلات تصحيح الأخطاء والبيانات غير المستخدمة تُركت دون تطهير
تستهلك سجلات debug logs القديمة، أو التقارير، أو سجلات big object التخزين دون أن يلاحظ أحد ذلك حتى تفشل عملية نشر.

الحل

  1. طهّر البيانات والملفات غير المستخدمة
    احذف المرفقات والملفات وسجلات debug logs القديمة من المؤسسة المستهدفة لتحرير مساحة التخزين.
  2. استخدم scratch orgs للتحقق عبر CI
    شغّل عمليات نشر اختبارية مقابل scratch orgs جديدة بدلاً من sandbox مشتركة تتراكم فيها مساحة التخزين بمرور الوقت.
  3. اطلب زيادة في حد التخزين
    إذا كانت المؤسسة عند حد خطتها ولم يكن التنظيف كافيًا، تواصل مع Salesforce لرفع التخصيص.
من واقع الاستخدام

إزاي Serpent بتمنع ده

يشغّل Serpent AI التحقق عبر CI مقابل scratch orgs افتراضيًا، بحيث لا يتراكم التخزين أبدًا كما يحدث في sandbox مشتركة طويلة العمر. راجع مكتبة أخطاء نشر Salesforce.

لوحة الإصدارات مع تنبيهات التعارض في Serpent

الوقاية

نظّف الملفات الناتجة عن الاختبار تلقائيًا بعد كل تشغيل CI
احذف سجلات ContentVersion وAttachment التي أنشأها تشغيل اختبار آلي كخطوة أخيرة في خط الأنابيب، لا يدويًا بعد أن يصبح التخزين مشكلة.
اعتمد على scratch orgs افتراضيًا لأي شيء مؤقت
احتفظ بـ sandboxes الدائمة للعمل الذي يحتاج فعليًا إلى الاستمرار، واستخدم scratch orgs القابلة للتخلص منها للتحقق عبر CI، حتى لا يتراكم التخزين أبدًا.
راقب استخدام التخزين على sandboxes طويلة العمر بشكل استباقي
تحقق من نسب تخزين البيانات والملفات ضمن Setup، Storage Usage، وفق جدول زمني للـ sandboxes المشتركة، قبل أن تكتشف عملية نشر السقف نيابة عنك.
أسئلة شائعة

STORAGE_LIMIT_EXCEEDED، بالإجابات

هل يمكن أن يحدث هذا الخطأ في الإنتاج أيضًا؟
نادر الحدوث، لأن مؤسسات الإنتاج تمتلك عادةً مساحة تخزين أكبر بكثير، لكنه قد يحدث في الإصدارات الأصغر مع استخدام كثيف للمرفقات أو big object.
هل يؤدي تفريغ الـ Recycle Bin إلى تحرير مساحة التخزين فورًا؟
نعم، حذف السجلات نهائيًا من الـ Recycle Bin يستعيد مساحة تخزين البيانات فورًا، وغالبًا ما تكون أسرع طريقة لاستعادة مساحة في sandbox شبه ممتلئة.
هل تعيد عمليات تحديث sandbox استخدام التخزين إلى مستوى الإنتاج الحالي؟
نعم. يستبدل تحديث sandbox بيانات الـ sandbox بنسخة جديدة من مصدرها، مما يعيد ضبط بيانات الاختبار المتراكمة واستخدام التخزين إلى ما تحتفظ به المؤسسة المصدر وقت التحديث.

ابدأ مجانًا. بدون بطاقة ائتمان، وبدون تثبيت، وبدون التزام.

يتم الإعداد في أقل من 15 دقيقة. دون الحاجة لتوظيف متخصص DevOps.

هل تريد معرفة كيف يمكنكم الشحن أسرع قبل البدء؟ لنتحدث

بدون التزام.