> ## 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'app non si avvia su Square Cloud: EADDRINUSE, Cannot Find Module, INVALID_DEPENDENCY

> Risolvi EADDRINUSE porta già in uso, Cannot find module / ModuleNotFoundError, INVALID_DEPENDENCY, CONTAINER_TEMPORARILY_SUSPENDED, KEEP_CALM, errori dei binding di better-sqlite3 e LACK_OF_RAM su Square Cloud.

Se la tua applicazione va in crash all'avvio o non risulta mai online, il log della console indica quasi sempre il problema esatto. Trova la corrispondenza con l'errore qui sotto.

## EADDRINUSE (porta già in uso)

**Cosa significa:** l'app cerca di collegarsi due volte alla stessa porta di rete.

**Perché accade:** nel codice vengono avviati due server, oppure una chiamata listener/`app.listen(...)` viene creata di nuovo all'interno di un event handler (ad esempio, a ogni richiesta o a ogni riconnessione) invece che una sola volta all'avvio.

**Come risolvere:**

1. Collega **un solo** webserver, **una sola volta**, in ascolto sulla porta `80`.
2. Cerca nel tuo codice più di una chiamata `.listen()` (Node) o `run()` (Python/Flask/Django) e rimuovi quella duplicata.
3. Assicurati che la chiamata listen si trovi al livello superiore del tuo file di avvio, non dentro un callback che può attivarsi più di una volta.

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

<Note>Le app dinamiche di Square Cloud devono collegarsi all'host `0.0.0.0` e alla porta `80`. Collegarsi a `localhost`/`127.0.0.1` o a qualsiasi altra porta causa un timeout del sito.</Note>

## "Cannot find module" (Node.js) e ModuleNotFoundError (Python)

**Cosa significa:** un pacchetto importato dal tuo codice manca dal file delle dipendenze.

**Perché accade:** la libreria non è elencata nel campo `dependencies` di `package.json` (Node) o in `requirements.txt`/`pyproject.toml` (Python), quindi non viene mai installata sulla piattaforma, anche se funziona sulla tua macchina.

**Come risolvere:**

1. Aggiungi il pacchetto mancante al file delle dipendenze con una versione valida.
2. Conferma che il file delle dipendenze stesso sia incluso nello `.zip` caricato.
3. Riavvia l'applicazione. Per Node.js, una reinstallazione pulita richiede prima di eliminare `node_modules` (cancellalo insieme a `package-lock.json`, poi riavvia) in modo che la piattaforma reinstalli da uno stato pulito.

## INVALID\_DEPENDENCY

**Cosa significa:** il deploy è fallito perché una voce nel tuo file delle dipendenze non esiste o punta a una versione non valida/non disponibile.

**Come risolvere:** apri `package.json` / `requirements.txt` / `pyproject.toml`, correggi il nome del pacchetto scritto male o l'intervallo di versione per la voce segnalata, e rifai il deploy.

## CONTAINER\_TEMPORARILY\_SUSPENDED

**Cosa significa:** il container è stato sospeso dalla piattaforma.

**Perché accade:** questo stato viene attivato dalle protezioni automatiche contro l'abuso di risorse, più comunemente:

* **OOM (RAM):** l'app ha cercato di superare la sua `MEMORY` configurata e il processo è stato terminato.
* **Abuso di CPU:** l'app ha continuamente superato la CPU allocata, quindi il processo è stato sospeso per proteggere il nodo.
* **Abuso di richieste:** è scattato un limite di sicurezza sul traffico verso i domini `.squareweb.app` o le API di messaggistica (Discord, Telegram, WhatsApp), quasi sempre a causa di un loop infinito o di una cache mancante piuttosto che di una reale popolarità.

**Come risolvere:** controlla l'email associata al tuo account, spiega quale trigger ha causato la sospensione. Poi risolvi la causa principale (memory leak, loop bloccante o pattern di richieste incontrollato) prima di riavviare.

## KEEP\_CALM

**Cosa significa:** un'azione relativa a uno snapshot è stata richiesta troppo velocemente.

**Perché accade:** oppure tu (o un'automazione) hai richiesto di nuovo uno snapshot prima che trascorresse il breve cooldown della piattaforma tra le richieste di snapshot, oppure è stato raggiunto il limite giornaliero di snapshot dell'account per il piano attuale. Nota che questo è diverso da `DAILY_SNAPSHOTS_LIMIT_REACHED`, che segnala specificamente che la quota giornaliera del piano è esaurita: `KEEP_CALM` può attivarsi anche per il cooldown più breve per-app tra le richieste, indipendentemente dal conteggio giornaliero.

**Come risolvere:** attendi qualche minuto e riprova. Se è stato raggiunto il limite giornaliero, attendi il giorno successivo oppure esegui l'upgrade per un limite di snapshot automatici più alto.

## Errori dei binding nativi di better-sqlite3

**Cosa significa:** un errore come `Could not locate the bindings file` quando la tua app usa `better-sqlite3` (direttamente, o tramite `quick.db`).

**Perché accade:** la versione installata di `better-sqlite3` precede l'attuale versione LTS di Node.js della piattaforma, quindi il suo binding nativo precompilato non corrisponde al runtime.

**Come risolvere:**

1. Aggiorna `better-sqlite3` alla versione `12.5.0` o successiva (se usi `quick.db`, aggiornalo alla versione `9.1.7` o successiva).
2. Elimina `node_modules` **e** `package-lock.json`.
3. Riavvia l'applicazione per una reinstallazione pulita che ricostruisce i binding nativi contro il runtime attuale.

## LACK\_OF\_RAM

**Cosa significa:** l'applicazione ha superato la RAM allocata, oppure il kernel ha segnalato una condizione di memoria esaurita, e il processo è stato terminato per proteggere la stabilità dell'host.

**Come risolvere:**

1. Profila l'app per memory leak (Node.js: `--inspect`, Python: `memory_profiler`).
2. Sposta le cache in memoria su Redis o un altro store esterno invece di far crescere all'infinito una cache/Map in-process.
3. Aumenta il valore di `MEMORY` allocato alla tua applicazione nel pannello di controllo.

Consulta il quadro completo dei minimi di RAM, dell'allocazione CPU e dei limiti di rete/storage nella pagina [Limiti e restrizioni](/it/platform/limitations-and-restrictions#lack_of_ram).

<Tip>Sei ancora bloccato dopo aver controllato i log rispetto all'errore sopra? Il nostro team di supporto può esaminare con te il crash specifico.</Tip>

## Contattaci

Se continui a riscontrare **difficoltà tecniche**, il nostro **team di supporto specializzato** è disponibile ad assisterti. [**Contattaci**](https://squarecloud.app/it/support) e saremo felici di aiutarti a risolvere qualsiasi problema — la qualità del supporto è una parte importante del motivo per cui gli sviluppatori valutano Square Cloud [**4,9/5 su 402 recensioni**](https://www.trustpilot.com/review/squarecloud.app) su Google e Trustpilot.
