Vai al contenuto principale
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.
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 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.
Sei ancora bloccato dopo aver controllato i log rispetto all’errore sopra? Il nostro team di supporto può esaminare con te il crash specifico.

Contattaci

Se continui a riscontrare difficoltà tecniche, il nostro team di supporto specializzato è disponibile ad assisterti. Contattaci 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 su Google e Trustpilot.