ls ~/errors
Lessico dei codici d'errore.
I messaggi che tornano sempre nel supporto — cosa significano, come verificarli e cosa aiuta.
550 5.7.1SMTP 550 5.7.1: relay access denied e rifiuti per policyIl server rifiuta il messaggio per policy: quasi sempre il mittente non è autenticato e il server dovrebbe inoltrare (relay) la mail verso un dominio che non gestisce.550 5.7.26SMTP 550 5.7.26 e 5.7.23: email non autenticataGmail (e Microsoft con 5.7.509/5.7.515) rifiuta il messaggio perché non è autenticato né con SPF né con DKIM allineati al dominio del mittente.421 4.7.0SMTP 421 4.7.0: limitato temporaneamente, try again laterIl server di destinazione rifiuta temporaneamente altre mail dal tuo IP perché volume, reputazione o autenticazione sono sospetti: i messaggi restano in coda e vengono ritentati.554 5.7.1SMTP 554 5.7.1: rifiutato per blocklist o spamIl destinatario rifiuta in modo definitivo connessione o messaggio perché l'IP mittente è in una blocklist DNS (DNSBL) o il contenuto è stato classificato come spam.451 4.7.1SMTP 451 4.7.1: greylisting e rifiuto temporaneoIl destinatario rifiuta di proposito il primo tentativo da un mittente sconosciuto; un server di posta configurato bene riprova dopo qualche minuto e la mail passa.535 5.7.8SMTP 535 5.7.8: authentication failed, login rifiutatoIl server ha rifiutato il login SMTP AUTH. La connessione funziona, ma utente, password o meccanismo non corrispondono a quanto si aspetta il backend (di solito Dovecot SASL).530 5.7.0SMTP 530 5.7.0: must issue a STARTTLS command firstSu questa porta il server non accetta né AUTH né MAIL FROM su una connessione in chiaro. Il client deve prima inviare STARTTLS oppure usare TLS implicito sulla 465.552 5.2.2SMTP 552 5.2.2: mailbox full / quota exceededIl server di destinazione rifiuta il messaggio perché la casella del destinatario ha raggiunto la quota. Il mittente riceve un bounce e la mail non viene consegnata.550 5.1.1SMTP 550 5.1.1: user unknown / recipient address rejectedIl server di destinazione non conosce l'indirizzo e rifiuta la mail in modo definitivo. O l'indirizzo è sbagliato, o manca nelle tabelle del server.553 5.7.1SMTP 553 5.7.1: sender address rejected: not owned by userPostfix confronta l'indirizzo mittente (MAIL FROM) con l'utente SASL autenticato. Se secondo smtpd_sender_login_maps l'indirizzo non appartiene a quell'utente, la mail viene rifiutata.does not resolve to addressAvviso Postfix: hostname … does not resolve to addressPostfix ha trovato via PTR un nome per l'IP del server che si connette, ma quel nome non punta di nuovo allo stesso IP. Il client viene quindi trattato come “unknown”.auth failedDovecot: imap-login Disconnected (auth failed)Un client ha fatto login su IMAP o POP3 ed è stato respinto. Può essere un singolo utente con la password sbagliata, una passdb difettosa o un attacco.502HTTP 502 Bad Gateway con nginx e PHP-FPMnginx non ha ricevuto una risposta valida dall'upstream (PHP-FPM, Node.js, Gunicorn, un container Docker): il backend è fermo, irraggiungibile o è andato in crash.504HTTP 504 Gateway Timeout con nginxnginx ha raggiunto il backend ma non ha ricevuto risposta entro il timeout impostato (60 secondi di default).413HTTP 413 Request Entity Too Large su nginxIl corpo della richiesta (di solito un upload) supera il limite consentito da nginx o da un proxy davanti: la richiesta non arriva nemmeno all'applicazione.403HTTP 403 Forbidden (nginx): directory index is forbiddennginx capisce la richiesta ma nega l'accesso. Il motivo esatto è quasi sempre nell'error.log: “directory index … is forbidden”, “Permission denied” o “access forbidden by rule”.500HTTP 500 Internal Server Error: trovare la causa nei logL'applicazione o il web server ha fallito nel gestire la richiesta. Il codice non dice il perché: il motivo è nell'error.log di nginx, nel log di PHP-FPM o in quello dell'applicazione.503HTTP 503 Service Unavailable: chi lo genera?Il servizio è temporaneamente non disponibile. Prima capisci chi genera il 503: nginx stesso (rate limit, return 503), l'applicazione (maintenance mode) o un load balancer davanti.400400 Bad Request: request header or cookie too largeUn singolo header o la riga dei cookie è più grande del buffer che nginx riserva. Di default sono 4 buffer da 8 KB: cookie SSO grandi o JWT li superano in fretta.too big headernginx: upstream sent too big header while reading response headerGli header di risposta del backend (di solito i cookie) sono più grandi del buffer che nginx riserva; nginx si ferma e risponde 502 Bad Gateway.Primary script unknownnginx + PHP-FPM: “Primary script unknown” / “File not found.”nginx passa la richiesta a PHP-FPM, ma PHP-FPM non trova il file al percorso indicato o non può leggerlo. Nel browser compare solo “File not found.”.111: Connection refusednginx: connect() failed (111: Connection refused) verso upstreamnginx raggiunge l'host del backend, ma sulla porta di destinazione non ascolta nessuno. Il sistema rifiuta subito la connessione e l'utente vede 502 Bad Gateway.423 LockedNextcloud: "file is locked" e HTTP 423 LockedNextcloud nega l'accesso perché sul file esiste ancora un lock del transactional file locking, di solito rimasto orfano dopo un upload interrotto o un crash.maintenance modeNextcloud: risolvere "maintenance mode is enabled"Nextcloud è in modalità manutenzione e blocca web, client e quasi tutti i comandi occ: attivata apposta o rimasta dopo un aggiornamento non andato a buon fine.untrusted domainNextcloud: accesso tramite un dominio non attendibileNextcloud è stato aperto con un nome host o un IP che non è in trusted_domains, quindi rifiuta il login.data directory readableNextcloud: “your data directory is readable by other users”All'avvio Nextcloud verifica se altri utenti di sistema possono leggere o elencare la directory dei dati. Se sì, Nextcloud si rifiuta di funzionare o mostra l'avviso.Internal Server ErrorNextcloud: internal server error con Request IDNextcloud ha incontrato un errore nel gestire la richiesta. Il Request ID mostrato è la chiave: con quello trovi in nextcloud.log esattamente la voce corrispondente.CSRF check failedNextcloud: CSRF check failed al login o al salvataggioIl token CSRF del form non corrisponde alla sessione sul server. Quasi sempre la sessione si è persa tra caricamento e invio: non è un attacco.APCu not availableNextcloud: memcache \OC\Memcache\APCu not available for local cacheNextcloud usa APCu come cache locale, ma l'istanza PHP in esecuzione non ha APCu attivo. Quasi sempre riguarda solo PHP CLI, cioè occ e cron.php.missing indexesNextcloud: “the database is missing some indexes”Dopo un aggiornamento Nextcloud ha definito nuovi indici ma non li ha creati in automatico, perché su tabelle grandi può richiedere tempo. Senza indici le query rallentano.Last background jobNextcloud: “last background job execution ran … ago”Nextcloud gestisce pulizie, notifiche, versioni dei file e cestino con i job in background. L'avviso significa che questi job non girano da un po'.SAML signatureErrore SAML: signature validation failed in NextcloudNextcloud (user_saml con php-saml) non è riuscito a verificare la firma della risposta SAML con il certificato IdP salvato e rifiuta il login.invalid_grantOIDC/OAuth2: invalid_grant sul token endpointL'identity provider rifiuta l'authorization code o il refresh token che il client vuole scambiare. Il login fallisce subito dopo il ritorno dall'IdP.redirect_uri_mismatchOIDC: redirect_uri_mismatch / invalid redirect_uriNella richiesta authorize il client invia una redirect_uri che non è registrata esattamente così sull'identity provider. L'IdP si ferma prima che l'utente possa fare login.NotBeforeSAML: “not yet valid”, clock skew su NotBeforeOgni asserzione SAML vale solo in una finestra temporale (da NotBefore a NotOnOrAfter). Se l'orologio del service provider è diverso da quello dell'IdP, l'asserzione risulta non ancora o non più valida.acme:error:unauthorizedLet's Encrypt: urn:ietf:params:acme:error:unauthorizedLet's Encrypt non è riuscito a scaricare il file di challenge in /.well-known/acme-challenge/ dal server giusto, quindi non emette il certificato.unable to get local issuer certificateSSL: unable to get local issuer certificateIl client non riesce a costruire la catena dal certificato del server fino a una root CA fidata. O il server non invia gli intermedi, o al client manca la root CA.SSL_ERROR_RX_RECORD_TOO_LONGSSL_ERROR_RX_RECORD_TOO_LONG in FirefoxIl browser si aspetta un handshake TLS sulla 443 ma riceve testo in chiaro, di solito una risposta HTTP. Firefox interpreta quei byte come un record TLS troppo lungo e si ferma.ERR_CERT_COMMON_NAME_INVALIDNET::ERR_CERT_COMMON_NAME_INVALIDIl certificato è valido ma non è emesso per questo nome. I browser controllano solo i Subject Alternative Names (SAN): se il nome richiesto non c'è, compare questo errore.certificate has expiredSSL: certificate has expired / ERR_CERT_DATE_INVALIDIl certificato servito è fuori dal periodo di validità. Spesso è stato rinnovato da tempo, ma il web server serve ancora il file vecchio dalla memoria.rateLimitedLet's Encrypt: too many certificates already issuedLet's Encrypt limita quanti certificati vengono emessi in un periodo. L'errore indica il limite raggiunto e da quando puoi riprovare (“retry after”).SERVFAILDNS SERVFAIL: trovare la causa e risolvereIl resolver non è riuscito a ottenere una risposta valida: o i nameserver autoritativi non rispondono come dovrebbero, o la validazione DNSSEC fallisce.NXDOMAINDNS NXDOMAIN: dominio o hostname inesistenteIl name server responsabile ha risposto in modo autorevole che il nome non esiste. È diverso da SERVFAIL o da un timeout: bisogna capire quale server lo afferma e perché.CNAME at apexDNS: CNAME sull'apex, “CNAME and other data”Un CNAME non può stare insieme ad altri record con lo stesso nome. L'apex della zona (example.com) ha sempre SOA e NS: per questo lì il CNAME non è consentito.ENOSPCNo space left on device anche se df mostra spazio liberoIl kernel restituisce ENOSPC perché una risorsa del filesystem è esaurita: non per forza lo spazio, spesso gli inode o lo spazio occupato da file cancellati ma ancora aperti.Permission denied (publickey)SSH: permission denied (publickey)Il server accetta solo login con chiave e non ha accettato nessuna delle chiavi offerte. La causa si vede nel client con -vvv e nel log del server.EROFSLinux: read-only file system (EROFS)Una scrittura è stata rifiutata perché il filesystem è in sola lettura. Spesso è il kernel a passarlo in sola lettura dopo un errore, per evitare altri danni.EMFILELinux: too many open files (EMFILE, errore 24)Un processo ha raggiunto il limite di file descriptor. Contano i file ma anche socket e pipe: sui web server soprattutto le connessioni aperte.Out of memoryLinux: out of memory, killed process (OOM killer)Il sistema o una cgroup ha finito la memoria. Il kernel ha terminato il processo con il punteggio OOM più alto, non per forza quello che ha causato il problema.control process exitedsystemd: job for X.service failed (control process exited)systemd ha provato ad avviare o ricaricare il servizio e il comando di avvio (ExecStart o ExecStartPre) è terminato con errore. La causa vera è nel journal del servizio.