Passer au contenu principal
Si votre application plante au démarrage ou ne se met jamais en ligne, le log de la console indique presque toujours le problème exact. Trouvez l’erreur correspondante ci-dessous.

EADDRINUSE (port déjà utilisé)

Ce que ça signifie : l’application essaie de lier le même port réseau deux fois. Pourquoi ça arrive : deux serveurs sont démarrés dans le code, ou un appel .listen()/app.listen(...) est recréé dans un gestionnaire d’événement (par exemple à chaque requête ou à chaque reconnexion) au lieu d’une seule fois au démarrage. Comment corriger :
  1. Liez un seul serveur web, une seule fois, écoutant sur le port 80.
  2. Recherchez dans votre code plus d’un appel .listen() (Node) ou run() (Python/Flask/Django) et supprimez le doublon.
  3. Vérifiez que l’appel listen se trouve au niveau supérieur de votre fichier de démarrage, et non dans un callback qui peut se déclencher plusieurs fois.
Les applications dynamiques Square Cloud doivent se lier à l’hôte 0.0.0.0 et au port 80. Se lier à localhost/127.0.0.1 ou à tout autre port provoque un délai d’attente du site à la place.

« Cannot find module » (Node.js) et ModuleNotFoundError (Python)

Ce que ça signifie : un paquet importé par votre code est manquant dans le fichier de dépendances. Pourquoi ça arrive : la bibliothèque n’est pas listée dans les dependencies du package.json (Node) ou dans requirements.txt/pyproject.toml (Python), donc elle n’est jamais installée sur la plateforme, même si elle fonctionne sur votre machine. Comment corriger :
  1. Ajoutez le paquet manquant au fichier de dépendances avec une version valide.
  2. Confirmez que le fichier de dépendances lui-même est inclus dans le .zip que vous avez envoyé.
  3. Redémarrez l’application. Pour Node.js, une réinstallation propre nécessite d’abord de supprimer node_modules (supprimez-le ainsi que package-lock.json, puis redémarrez) afin que la plateforme réinstalle depuis un état propre.

INVALID_DEPENDENCY

Ce que ça signifie : le déploiement a échoué car une entrée de votre fichier de dépendances n’existe pas ou pointe vers une version invalide/indisponible. Comment corriger : ouvrez package.json / requirements.txt / pyproject.toml, corrigez le nom de paquet mal orthographié ou la plage de version de l’entrée signalée, puis redéployez.

CONTAINER_TEMPORARILY_SUSPENDED

Ce que ça signifie : le conteneur a été suspendu par la plateforme. Pourquoi ça arrive : ce statut est déclenché par les protections automatiques contre l’abus de ressources, le plus souvent :
  • OOM (RAM) : l’application a essayé de dépasser sa MEMORY configurée et le processus a été tué.
  • Abus de CPU : l’application a dépassé en continu son CPU alloué, donc le processus a été suspendu pour protéger le nœud.
  • Abus de requêtes : un plafond de sécurité sur le trafic vers les domaines .squareweb.app ou les API de messagerie (Discord, Telegram, WhatsApp) a été déclenché, presque toujours par une boucle infinie ou un cache manquant plutôt qu’une popularité réelle.
Comment corriger : vérifiez l’e-mail associé à votre compte, il explique quel déclencheur a causé la suspension. Corrigez ensuite la cause racine (fuite mémoire, boucle chaude ou schéma de requêtes incontrôlé) avant de redémarrer.

KEEP_CALM

Ce que ça signifie : une action liée aux snapshots a été demandée trop rapidement. Pourquoi ça arrive : soit vous (ou une automatisation) avez redemandé un snapshot avant que le court délai de refroidissement de la plateforme entre les demandes de snapshot ne soit écoulé, soit la limite quotidienne de snapshots du compte pour le plan actuel a été atteinte. Notez que ceci diffère de DAILY_SNAPSHOTS_LIMIT_REACHED, qui signale spécifiquement que le quota quotidien du plan est épuisé : KEEP_CALM peut aussi se déclencher sur le délai de refroidissement plus court par application entre les demandes, indépendamment du compte quotidien. Comment corriger : attendez quelques minutes et réessayez. Si la limite quotidienne a été atteinte, attendez le lendemain, ou passez à un niveau supérieur pour une allocation plus élevée de snapshots automatiques.

Erreurs de bindings natifs better-sqlite3

Ce que ça signifie : une erreur comme Could not locate the bindings file quand votre application utilise better-sqlite3 (directement, ou via quick.db). Pourquoi ça arrive : la version installée de better-sqlite3 est antérieure à la LTS Node.js actuelle de la plateforme, donc son binding natif précompilé ne correspond pas au runtime. Comment corriger :
  1. Mettez à jour better-sqlite3 vers 12.5.0 ou une version ultérieure (si vous utilisez quick.db, mettez-le à jour vers 9.1.7 ou une version ultérieure).
  2. Supprimez node_modules et package-lock.json.
  3. Redémarrez l’application pour une réinstallation propre qui reconstruit les bindings natifs pour le runtime actuel.

LACK_OF_RAM

Ce que ça signifie : l’application a dépassé la RAM allouée, ou le noyau a signalé une condition de manque de mémoire, et le processus a été interrompu pour protéger la stabilité de l’hôte. Comment corriger :
  1. Profilez l’application pour détecter des fuites de mémoire (Node.js : --inspect, Python : memory_profiler).
  2. Déplacez les caches en mémoire vers Redis ou un autre stockage externe au lieu de laisser grandir indéfiniment un cache/Map en mémoire.
  3. Augmentez la valeur MEMORY allouée à votre application dans le panneau de contrôle.
Consultez le détail complet des minimums de RAM, de l’allocation CPU et des limites réseau/stockage sur la page Limites et restrictions.
Toujours bloqué après avoir vérifié les logs par rapport à l’erreur ci-dessus ? Notre équipe de support peut examiner le crash spécifique avec vous.

Contactez-nous

Si vous rencontrez toujours des difficultés techniques, notre équipe de support spécialisée est disponible pour vous aider. Contactez-nous et nous serons ravis de vous aider à résoudre tout problème. La qualité du support compte pour beaucoup dans la note que les développeurs donnent à Square Cloud, 4,9/5 sur 402 avis sur Google et Trustpilot.