> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# L'application ne démarre pas sur Square Cloud : EADDRINUSE, Cannot Find Module, INVALID_DEPENDENCY

> Corrigez EADDRINUSE port déjà utilisé, Cannot find module / ModuleNotFoundError, INVALID_DEPENDENCY, CONTAINER_TEMPORARILY_SUSPENDED, KEEP_CALM, erreurs de bindings better-sqlite3, et LACK_OF_RAM sur Square Cloud.

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.

```javascript theme={null}
// Correct: one listener, at the top level
app.listen(80, "0.0.0.0", () => {
  console.log("Server running");
});
```

<Note>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.</Note>

## « 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](/fr/platform/limitations-and-restrictions#lack_of_ram).

<Tip>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.</Tip>

## Contactez-nous

Si vous rencontrez toujours des **difficultés techniques**, notre **équipe de support spécialisée** est disponible pour vous aider. [**Contactez-nous**](https://squarecloud.app/fr/support) 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**](https://www.trustpilot.com/review/squarecloud.app) sur Google et Trustpilot.
