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:
- Collega un solo webserver, una sola volta, in ascolto sulla porta
80. - Cerca nel tuo codice più di una chiamata
.listen()(Node) orun()(Python/Flask/Django) e rimuovi quella duplicata. - 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.
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.”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 campodependencies 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:
- Aggiungi il pacchetto mancante al file delle dipendenze con una versione valida.
- Conferma che il file delle dipendenze stesso sia incluso nello
.zipcaricato. - Riavvia l’applicazione. Per Node.js, una reinstallazione pulita richiede prima di eliminare
node_modules(cancellalo insieme apackage-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: apripackage.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
MEMORYconfigurata 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.appo 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à.
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 daDAILY_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 comeCould 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:
- Aggiorna
better-sqlite3alla versione12.5.0o successiva (se usiquick.db, aggiornalo alla versione9.1.7o successiva). - Elimina
node_modulesepackage-lock.json. - 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:- Profila l’app per memory leak (Node.js:
--inspect, Python:memory_profiler). - Sposta le cache in memoria su Redis o un altro store esterno invece di far crescere all’infinito una cache/Map in-process.
- Aumenta il valore di
MEMORYallocato alla tua applicazione nel pannello di controllo.

