Comment corriger STORAGE_LIMIT_EXCEEDED dans les déploiements Salesforce

L'org cible a atteint sa limite de stockage de données ou de fichiers, donc le déploiement ne peut pas insérer les enregistrements dont il a besoin.

Se produit lors de : DML à l'exécution, le plus souvent lors de la configuration de test Apex dans un petit sandbox

Ce que cela signifie

STORAGE_LIMIT_EXCEEDED signifie que l'org cible, généralement un org Developer ou sandbox avec une petite allocation de stockage, est plein. La plupart des déploiements qui rencontrent cela sont bloqués par des données de configuration de test Apex qui tentent d'insérer des enregistrements dans un org qui n'a plus de place, pas par les métadonnées du déploiement lui-même.

Salesforce suit le stockage de données et le stockage de fichiers comme des allocations séparées, donc un org plein peut être touché soit par un grand nombre d'enregistrements, soit par un nombre plus restreint d'enregistrements avec de gros fichiers joints ; le texte de l'erreur ne précise pas toujours lequel est épuisé.

Diagnostic

Causes courantes

L'allocation de stockage du sandbox est petite et presque pleine
Les types d'org Developer et certains sandbox sont livrés avec un stockage limité, et les données accumulées au fil du temps laissent peu de marge pour les exécutions de tests.
Fichiers ou pièces jointes volumineux issus d'exécutions de tests répétées
Les fichiers ou pièces jointes créés par des exécutions CI ou des tests manuels s'accumulent et ne sont jamais nettoyés.
Journaux de débogage et données inutilisées jamais purgés
D'anciens journaux de débogage, rapports ou enregistrements big object consomment du stockage sans que personne ne le remarque jusqu'à ce qu'un déploiement échoue.

La solution

  1. Purgez les données et fichiers inutilisés
    Supprimez les anciennes pièces jointes, fichiers et journaux de débogage de l'org cible pour libérer du stockage.
  2. Utilisez des scratch orgs pour la validation CI
    Exécutez les déploiements de test contre des scratch orgs neufs plutôt qu'un sandbox partagé qui accumule du stockage au fil du temps.
  3. Demandez une augmentation de la limite de stockage
    Si l'org a atteint la limite de son plan et que le nettoyage ne suffit pas, contactez Salesforce pour augmenter l'allocation.
En pratique

Comment Serpent évite cela

Serpent AI exécute la validation CI par défaut contre des scratch orgs, de sorte que le stockage ne s'accumule jamais comme dans un sandbox partagé de longue durée. Voir la bibliothèque des erreurs de déploiement Salesforce.

Tableau de bord des releases avec alertes de conflit dans Serpent

Prévention

Nettoyez automatiquement les fichiers générés par les tests après chaque exécution CI
Supprimez les enregistrements ContentVersion et Attachment créés par une exécution de test automatisée en dernière étape du pipeline, pas manuellement une fois que le stockage devient un problème.
Optez par défaut pour des scratch orgs pour tout ce qui est transitoire
Réservez les sandbox persistants au travail qui doit véritablement persister, et utilisez des scratch orgs jetables pour la validation CI, afin que le stockage n'ait jamais le temps de s'accumuler.
Surveillez proactivement l'utilisation du stockage sur les sandbox de longue durée
Vérifiez régulièrement les pourcentages de stockage de données et de fichiers sous Setup, Storage Usage, pour les sandbox partagés, avant qu'un déploiement ne découvre le plafond à votre place.
Questions fréquentes

STORAGE_LIMIT_EXCEEDED, les réponses

Cette erreur peut-elle aussi se produire en production ?
C'est rare, car les orgs de production disposent généralement de bien plus de stockage, mais cela peut arriver sur des éditions plus petites avec un usage intensif de pièces jointes ou de big objects.
Vider la Recycle Bin libère-t-il immédiatement de l'espace de stockage ?
Oui, la suppression définitive des enregistrements de la Recycle Bin récupère immédiatement du stockage de données, et c'est souvent le moyen le plus rapide de récupérer de la place dans un sandbox presque plein.
Les rafraîchissements de sandbox réinitialisent-ils l'utilisation du stockage au niveau actuel de la production ?
Oui. Un rafraîchissement de sandbox remplace les données du sandbox par une copie fraîche de sa source, réinitialisant les données de test accumulées et l'utilisation du stockage à ce que l'org source contient au moment du rafraîchissement.

Commencez gratuitement. Sans carte bancaire, sans installation, sans engagement.

Configuration en moins de 15 minutes. Aucune embauche DevOps nécessaire.

Curieux de livrer plus vite avant de vous lancer ? Parlons-en

Sans engagement.