> ## 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.

# Codici di errore dell'API e come risolverli

> Tutti i codici di errore dell'API di Square Cloud, raggruppati per area, con stato HTTP, significato e cosa fare, più le regole per ritentare le richieste.

Ogni richiesta non riuscita all'API di Square Cloud risponde con uno stato HTTP e un body JSON che contiene un `code` leggibile dalle macchine. Questa pagina elenca tutti i codici, raggruppati per area. Anche la pagina di ogni endpoint elenca i codici che quell'endpoint restituisce più spesso.

<Note>
  [Blob Storage](/it/blob-reference/errors) ha un proprio elenco di codici, e l'[AI Gateway](/it/api-reference/ai-gateway#errori) risponde nel formato di errore di OpenAI con codici in minuscolo. Nessuno dei due è trattato qui.
</Note>

## Formato degli errori

```json theme={"system"}
{
  "status": "error",
  "code": "APP_NOT_FOUND",
  "message": "Optional explanation for humans."
}
```

| Campo | Descrizione |
| - | - |
| `status` | Sempre `"error"` in caso di errore. |
| `code` | Il codice di errore, in `UPPER_SNAKE_CASE`. Basa la tua logica su questo campo. |
| `message` | Facoltativo. Una spiegazione leggibile che può cambiare in qualsiasi momento: mostrala alle persone, ma non analizzarla mai nel codice. |

<Info>
  L'elenco dei codici cresce nel tempo. Tratta un codice che non conosci come un errore generico dello stato HTTP con cui è arrivato: correggi la richiesta su un `4xx`, attendi su un `429` e riprova più tardi su un `5xx`.
</Info>

## Nuovi tentativi

L'API non invia l'header `Retry-After`, quindi la decisione spetta a te. Una strategia sicura:

| Risposta | Cosa fare |
| - | - |
| `400`, `401`, `403`, `404`, `409`, `413`, `415` | Non ripetere la stessa richiesta: fallirebbe allo stesso modo. Correggi prima l'input, la credenziale o il piano. |
| `429` | Attendi prima della richiesta successiva. Ritentare in loop ti mantiene bloccato. Vedi [Limiti di frequenza](#limiti-di-frequenza). |
| `503 UPLOAD_BUSY`, `503 ANALYTICS_BUSY` | Riprova dopo una breve pausa, con backoff esponenziale. |
| `503 DATABASE_UNAVAILABLE` | Ripeti una lettura dopo qualche secondo. Una scrittura potrebbe essere già stata applicata, quindi controlla la risorsa prima di ripeterla. |
| `500` e altri `5xx` | Riprova una o due volte con backoff. Se continua a fallire, controlla lo [stato del servizio](/it/api-reference/endpoint/service/status). |

`202 SNAPSHOT_PROCESSING` mantiene il formato di errore per compatibilità, ma **non è un errore**: lo snapshot è ancora in fase di generazione e comparirà da solo nell'elenco. Non richiederlo di nuovo.

## Limiti di frequenza

Due codici rispondono `429`, con significati diversi:

* **`RATE_LIMITED`**: il budget di richieste del tuo account o della tua chiave API, conteggiato ogni 60 secondi e stabilito dal tuo piano (vedi i [valori per piano](/it/api-reference/limitations-and-restrictions#limiti-dellapi)). Una volta superato, l'API rifiuta le tue richieste per un massimo di 30 minuti. Alcuni endpoint rispondono `RATE_LIMITED` anche per i propri limiti, e un indirizzo IP che continua a inviare chiavi API che non appartengono a nessun account viene bloccato per un breve periodo.
* **`KEEP_CALM`**: il limite proprio di un singolo endpoint, ad esempio un riavvio ogni pochi secondi. Attendi un momento e riprova. Il limite di ogni endpoint è indicato nella sua pagina.

## Autenticazione e permessi

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `ACCESS_DENIED` | 401 | La chiave API è mancante, errata, revocata o scaduta, oppure il suo account non esiste più. Controlla la chiave nelle [impostazioni di sicurezza del tuo account](https://squarecloud.app/it/account/security) e non ritentare in loop. |
| `MISSING_SCOPE` | 403 | La chiave è valida ma non ha lo scope richiesto da questo endpoint. Gli scope non si possono modificare, quindi crea una chiave con quello scope. Vedi [Scope](/it/api-reference/authentication#scope). |
| `RESOURCE_NOT_ALLOWED` | 403 | La chiave è limitata ad applicazioni e database che non includono questa risorsa, oppure l'endpoint riguarda l'intero account e la chiave è limitata. Usa una chiave che copra la risorsa. |
| `PERMISSION_DENIED` | 403 | Il tuo ruolo nel workspace non consente questa azione su un'applicazione condivisa, ad esempio leggere `.env` senza il ruolo `admin`. Vedi i [ruoli del workspace](/it/api-reference/endpoint/workspace/members/invite#ruoli). |
| `SCOPE_NOT_GRANTABLE` | 403 | Una chiave API limitata ha tentato di concedere più accesso di quanto ne abbia, ad esempio aggiungere un membro `admin` con una chiave senza `envs:write`. Usa una chiave con tutti gli scope di quel ruolo, oppure la dashboard. |
| `UPGRADE_REQUIRED` | 402 / 403 | La funzionalità richiede un piano superiore: database, domini personalizzati e workspace richiedono Standard o superiore, i log di rete e le prestazioni richiedono Pro o superiore, ed elencare gli snapshot dell'account richiede un piano attivo (`402`). Quando possibile, il `message` indica il piano. |

## Validazione della richiesta

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `INVALID_JSON_BODY` | 400 | Il body non è un JSON valido. Invia `Content-Type: application/json` e un body ben formato. |
| `INVALID_INPUT` | 400 | Un campo non ha superato la validazione. Il `message` indica quale. |
| `INVALID_ID` | 400 | Un id obbligatorio, di solito `workspaceId`, è mancante o malformato. |
| `INVALID_CONTENT_TYPE` | 415 | Upload e commit richiedono `multipart/form-data` con lo zip in un campo `file`. |
| `PAYLOAD_TOO_LARGE` | 413 | Il body supera la dimensione accettata da questo endpoint. |
| `ROUTE_NOT_FOUND` | 404 | Il percorso o il metodo HTTP è errato. Confrontalo con la pagina dell'endpoint. |

## Quote e limiti di connessione

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `RATE_LIMITED` | 429 | È stato raggiunto il budget di richieste del tuo account o della chiave, oppure il limite proprio di un endpoint. Vedi [Limiti di frequenza](#limiti-di-frequenza). |
| `KEEP_CALM` | 429 | Troppe richieste a questo endpoint in poco tempo. Attendi un momento e riprova. |
| `DAILY_SNAPSHOTS_LIMIT_REACHED` | 429 | La quota di snapshot manuali del piano per 24 ore è esaurita. Attendi prima del prossimo, oppure passa a un piano superiore per una quota maggiore. |
| `REALTIME_MAX_CONNECTIONS` | 429 | Il tuo account ha già 5 connessioni [realtime](/it/api-reference/endpoint/apps/realtime) aperte. Chiudine una prima. |
| `REALTIME_MAX_CONNECTIONS_APP` | 429 | L'applicazione ha già 30 connessioni realtime aperte tra tutti gli utenti. |

## Applicazioni

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `APP_NOT_FOUND` | 404 | L'applicazione non esiste, non è tua, oppure non sei membro del workspace in cui è condivisa. Controlla l'id. Le route dei workspace rispondono `400` quando `appId` manca nel body. |
| `CONTAINER_ALREADY_STARTED` | 409 | L'applicazione o il database è già in esecuzione. Puoi considerarlo un successo. |
| `CONTAINER_ALREADY_STOPPED` | 409 | L'applicazione o il database è già arrestato. Puoi considerarlo un successo. |
| `CONTAINER_TEMPORARILY_SUSPENDED` | 409 | La risorsa è sospesa. Controlla l'e-mail dell'account per conoscerne il motivo. |
| `CONTAINER_NOT_FOUND` | 409 | Il container della risorsa non è stato trovato sul suo server. Riprova tra un momento e contatta il supporto se il problema persiste. |
| `CONTAINER_INSUFFICIENT_DISK_SPACE` | 409 | Non c'è abbastanza spazio su disco per l'avvio. Rimuovi i file che non ti servono e riprova. |
| `CONTAINER_NETWORK_CONFLICT` | 409 | Un conflitto di rete o di porta ha impedito l'avvio. Riprova tra un momento. |
| `ACTION_FAILED` | 409 | L'avvio, l'arresto o il riavvio è stato rifiutato per un altro motivo, ad esempio durante un deploy. Controlla lo stato e riprova. |
| `RESTORE_IN_PROGRESS` | 403 | È in corso il ripristino di uno snapshot su questa risorsa. Attendi che finisca prima di eliminare l'applicazione, oppure di avviare, arrestare o eliminare il database. |
| `DELETE_FAILED` | 404 | Il nodo che ospita la risorsa ha rifiutato l'eliminazione. Riprova. Nel file manager, lo stesso codice risponde `400`. |
| `LOGS_UNAVAILABLE` | 404 | Non è stato possibile leggere i log: l'applicazione è offline, non è mai stata distribuita, oppure il nodo non ha risposto. Riprova a breve. |
| `METRICS_NOT_SUPPORTED` | 400 | Le metriche vengono raccolte solo per le applicazioni con almeno 512 MB di RAM. |

## Upload e commit

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `INVALID_FILE` | 400 | Il form non contiene un file nel campo `file`. |
| `INVALID_FILENAME` | 400 | Il nome del file contiene separatori di percorso, `..` o caratteri di controllo. |
| `INVALID_PATH` | 400 | Il `path` di un commit contiene caratteri di traversal o di shell. |
| `FILE_TOO_LARGE` | 413 | Lo zip supera i 100 MB. |
| `UPLOAD_ABORTED` | 400 | La connessione si è chiusa prima della fine dell'upload. Caricalo di nuovo. |
| `UPLOAD_BUSY` | 503 | Ci sono troppi upload in corso sulla piattaforma. Riprova dopo una breve pausa. |
| `STORAGE_UPLOAD_FAILED` | 400 | Non è stato possibile salvare lo zip. Riprova più tardi. |
| `UPLOAD_FAILED` | 400 | Non è stato possibile elaborare l'upload. Riprova e, se succede di nuovo, controlla lo zip. |
| `COMMIT_FAILED` | 400 | Non è stato possibile applicare il commit. Riprova e, se succede di nuovo, controlla lo zip. |
| `INSUFFICIENT_MEMORY` | 400 | Il tuo piano non ha abbastanza memoria libera per l'applicazione o il database, oppure `MEMORY` è sotto il minimo: 256 MB, o 512 MB per un sito web con un `SUBDOMAIN`. Modifica `MEMORY`, elimina qualcosa o passa a un piano superiore. |
| `CLUSTER_SELECTION_FAILED` | 400 | Al momento nessun server ha spazio per la nuova applicazione o il nuovo database. Riprova più tardi. |
| `CLUSTER_MAINTENANCE_TRY_LATER` | 503 | La creazione di nuove applicazioni e database è sospesa per manutenzione. Riprova più tardi. |
| `EMPTY_RESPONSE` | 400 | Il server che ha ricevuto l'upload non ha dato una risposta utilizzabile, quindi l'applicazione non è stata creata. Caricala di nuovo. |

## Controlli dello zip e della configurazione

Quando [carichi](/it/api-reference/endpoint/apps/upload) un'applicazione, il server che la eseguirà controlla lo zip e il suo [file di configurazione](/it/getting-started/config-file) (`squarecloud.app` o `squarecloud.config`). Un controllo non superato risponde `400` con uno di questi codici, e non viene distribuito nulla. Correggi lo zip e caricalo di nuovo. Un [commit](/it/api-reference/endpoint/apps/commit) non legge il file di configurazione: di questo elenco può fallire solo con `FAILED_EXTRACT` o `CONTAINER_INSUFFICIENT_DISK_SPACE`.

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `FAILED_EXTRACT` | 400 | Non è stato possibile estrarre lo zip. Crealo di nuovo con uno strumento zip standard e verifica che non sia danneggiato. |
| `DOWNLOAD_FAILED` | 400 | Il server non è riuscito a recuperare lo zip dopo averlo ricevuto. Caricalo di nuovo. |
| `MISSING_CONFIG` | 400 | Lo zip non ha un `squarecloud.app` o `squarecloud.config` nella radice, oppure il file è vuoto. |
| `MISSING_MEMORY`, `MISSING_DISPLAY_NAME`, `MISSING_VERSION` | 400 | Un campo obbligatorio del file di configurazione è mancante o vuoto. Il codice indica il primo che manca. |
| `MISSING_MAIN` | 400 | La configurazione non ha né [`MAIN`](/it/getting-started/config-file#main) né [`RUNTIME`](/it/getting-started/config-file#runtime). Impostane uno. |
| `INVALID_MAIN` | 400 | `MAIN` contiene caratteri diversi da lettere, cifre, `_`, `.`, `/` e `-`, oppure supera i 32 caratteri. Senza `RUNTIME`, fallisce anche quando il file non è nello zip, è vuoto, punta fuori dal progetto, oppure non ha un'estensione o ne ha una che non corrisponde a nessun linguaggio supportato. |
| `INVALID_RUNTIME` | 400 | `RUNTIME` non è uno dei valori supportati elencati nella reference del [file di configurazione](/it/getting-started/config-file#runtime). |
| `INVALID_VERSION` | 400 | `VERSION` deve essere `recommended` o `latest`. Un numero di versione esatto viene rifiutato. |
| `INVALID_START` | 400 | `START` supera i 256 caratteri. |
| `INVALID_DEPENDENCY` | 400 | Il file delle dipendenze del linguaggio è mancante o vuoto: `package.json` per JavaScript e TypeScript, `requirements.txt` o `pyproject.toml` per Python, `go.mod` o `go.work` per Go, `Cargo.toml` per Rust, `Gemfile` per Ruby, `mix.exs` per Elixir. |
| `INVALID_DISPLAY_NAME` | 400 | `DISPLAY_NAME` deve avere da 1 a 32 caratteri: lettere, cifre, spazi, `_` e `-`. |
| `INVALID_DESCRIPTION` | 400 | `DESCRIPTION` supera i 280 caratteri. |
| `INVALID_SUBDOMAIN` | 400 | `SUBDOMAIN` è malformato, riservato o già in uso. Scegline un altro. |
| `CONTAINER_INSUFFICIENT_DISK_SPACE` | 400 | In un commit, non c'è abbastanza spazio su disco per i nuovi file. Elimina i file che non ti servono ed esegui di nuovo il commit. |
| `ACCESS_FORBIDDEN` | 400 | Il server non è riuscito a caricare il tuo account per questo upload. Riprova e contatta il supporto se il problema persiste. |

## Variabili d'ambiente

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `STATIC_APP_ENV_NOT_SUPPORTED` | 400 | I siti statici non supportano le variabili d'ambiente. |
| `INVALID_ENV_CONTENT` | 400 | `envs` è mancante o ha la forma sbagliata: un oggetto per aggiungere o sostituire, un array di chiavi per rimuovere. |
| `TOO_MANY_ENV_VARS` | 400 | L'applicazione avrebbe più di 256 variabili. |
| `ENV_NAME_TOO_LONG` | 400 | Una chiave supera i 1024 caratteri, oppure non è una stringa. |
| `ENV_CONTENT_TOO_LONG` | 400 | Un valore supera i 4096 caratteri. |
| `READ_FAILED` | 400 | Non è stato possibile leggere le variabili dall'applicazione. Riprova. La route del certificato usa lo stesso codice. |

## File

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `INVALID_PATH` | 400 | Il percorso contiene caratteri di traversal o non validi, supera i 256 caratteri, oppure origine e destinazione di uno spostamento coincidono. |
| `BLOCKED_PATH` | 403 | Il percorso si trova in una directory protetta, oppure il tuo ruolo nel workspace non può scrivere quel file. |
| `INVALID_ENCODING` | 400 | `encoding` accetta solo `base64`. |
| `INVALID_CONTENT` | 400 | `content` è mancante, ha una forma non supportata o non è un base64 valido. |
| `FILE_NOT_FOUND` | 404 | Non esiste alcun file o directory in quel percorso. |
| `FILE_TOO_LARGE` | 413 | Il file manager legge e scrive file fino a 10 MB. Usa il [commit](/it/api-reference/endpoint/apps/commit) per file più grandi. |
| `RENAME_FAILED` | 400 | Non è stato possibile spostare o rinominare il file. Riprova. |
| `DELETE_FAILED` | 400 | Non è stato possibile eliminare il file. Riprova. |
| `INVALID_DISPLAY_NAME`, `INVALID_DESCRIPTION`, `INVALID_MEMORY`, `INVALID_AUTORESTART`, `INVALID_SUBDOMAIN` | 400 | Una scrittura nel [file di configurazione](/it/getting-started/config-file) contiene un campo che non supera la validazione, oppure un `SUBDOMAIN` già in uso. Correggi quel campo. |
| `CANNOT_SET_SUBDOMAIN` | 400 | La configurazione di un sito web non ha un `SUBDOMAIN`. Un sito web ne mantiene sempre uno, quindi reimpostalo. |
| `SAVE_FAILED` | 500 | Non è stato possibile salvare la nuova configurazione. Riprova. |

## Deploy e GitHub

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `INVALID_ACCESS_TOKEN` | 400 | Il token del webhook non è né un token GitHub (`ghp_...`, `github_pat_...`) né `@`. |
| `MISSING_REQUIRED_FIELDS` | 400 | Manca `repositoryName` o `repositoryBranch`. |
| `INVALID_BRANCH_LENGTH` | 400 | Il nome del branch supera i 256 caratteri. |
| `BRANCH_NOT_FOUND` | 400 | Il branch non esiste nel repository. |
| `GIT_ALREADY_CONFIGURED` | 400 | L'applicazione ha già un repository collegato. Scollegalo prima. |
| `GIT_NOT_CONFIGURED` | 400 | L'applicazione non ha un repository collegato da scollegare. |
| `GITHUB_NOT_CONNECTED` | 403 | Il tuo account Square Cloud non ha una connessione GitHub funzionante. Collega o ricollega GitHub nella dashboard. |
| `REPOSITORY_NOT_AVAILABLE` | 403 | La GitHub App di Square Cloud non è installata sul repository tramite il tuo account GitHub. |
| `REPOSITORY_PERMISSION_REQUIRED` | 403 | Il tuo account GitHub ha bisogno dell'accesso in scrittura al repository. |
| `REPOSITORY_NOT_FOUND` | 404 | Il repository non esiste oppure il tuo account GitHub non può vederlo. |
| `REPOSITORY_BRANCH_ALREADY_CONFIGURED` | 409 | Un'altra applicazione, di qualsiasi account, usa già questo repository e branch. |
| `FAILED_TO_FETCH` | 502 | GitHub non ha confermato il branch. Riprova. |
| `VALIDATION_FAILED` | 500 / 502 | Non è stato possibile validare il repository. Riprova. |
| `VALIDATION_TIMEOUT` | 504 | La validazione del repository ha richiesto troppo tempo. Riprova. |

Un deploy Git non riuscito non è un errore HTTP: compare nella [cronologia dei deploy](/it/api-reference/endpoint/apps/deploy/list) come evento con `state: "error"` e un `code` come `DEPLOY_FAILED`.

## Rete e domini

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `INVALID_TIME_RANGE` | 400 | `start` o `end` è mancante o malformato, oppure `start` è successivo a `end`. |
| `INVALID_FILTER` | 400 | Un filtro dell'endpoint di analytics ha un formato errato. |
| `UNABLE_TO_FETCH_ANALYTICS`, `UNABLE_TO_FETCH_ERRORS`, `UNABLE_TO_FETCH_PERFORMANCE` | 500 | Il provider edge non ha restituito i dati. Riprova più tardi. |
| `ANALYTICS_BUSY` | 503 | Le analytics di rete sono sovraccariche su tutta la piattaforma. Riprova dopo una breve pausa. |
| `NO_CUSTOM_DOMAIN` | 400 | L'applicazione non ha un dominio personalizzato, quindi non ha record DNS da mostrare. |
| `INVALID_DOMAIN` | 400 | Il valore non è un nome di dominio valido. |
| `RESERVED_DOMAIN` | 400 | I domini di Square Cloud e i loro sottodomini non possono essere usati come dominio personalizzato. |
| `DOMAIN_ALREADY_EXISTS` | 409 | Un altro account usa già questo dominio. Rimuovilo prima da lì. |
| `LOAD_BALANCER_LIMIT_REACHED` | 403 | Il tuo piano non consente questo dominio su altre applicazioni. Il `message` indica il limite. |
| `DNS_FAILED` | 502 | Il provider edge non è riuscito a collegare il dominio. Il dominio precedente resta attivo. Riprova. |
| `PURGE_CACHE_FAILED` | 500 | Lo svuotamento della cache non è stato completato. Riprova tra un momento. |

## Snapshot

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `SNAPSHOT_PROCESSING` | 202 | Non è un errore: lo snapshot è ancora in fase di generazione. Controlla l'elenco tra un paio di minuti. |
| `SNAPSHOT_FAILED` | 404 | Non è stato possibile creare lo snapshot. Riprova più tardi. |
| `MISSING_PARAMETERS` | 400 | Manca `snapshotId` o `versionId`. |
| `INVALID_SNAPSHOT_ID` | 400 | `snapshotId` non è un `name` dell'elenco degli snapshot. |
| `INVALID_VERSION_ID` | 400 | `versionId` non è un `version_id` dell'elenco degli snapshot. |
| `SNAPSHOT_NOT_FOUND` | 404 | Nessuno snapshot corrisponde a quell'id e a quella versione. |
| `SNAPSHOT_RESTORE_FAILED` | 404 | Il ripristino non è riuscito. Riprova, oppure ripristina un altro snapshot. |
| `SNAPSHOT_DATABASE_MISMATCH` | 400 | Lo snapshot proviene da un motore di database diverso da quello del database di destinazione. |
| `INVALID_SCOPE` | 400 | Lo `scope` dell'elenco degli snapshot dell'account deve essere `applications` o `databases`. |

## Database

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `DATABASE_NOT_FOUND` | 404 | Il database non esiste o non è tuo. |
| `INVALID_NAME` | 400 | Il nome deve avere da 1 a 32 caratteri. I workspace seguono la stessa regola. |
| `INVALID_DATABASE_TYPE` | 400 | `type` deve essere `mongo`, `mysql`, `postgres` o `redis`. |
| `INVALID_DATABASE_VERSION` | 400 | La versione non è disponibile per quel motore. |
| `INVALID_MEMORY` | 400 | La memoria non è valida per questo motore o piano. |
| `DATABASE_CREATION_FAILED` | 400 / 500 | Non è stato possibile creare il database. Non è rimasto nulla in sospeso, quindi puoi riprovare. |
| `DATABASE_NOT_RUNNING` | 400 | Avvia il database prima di leggerne il certificato o reimpostarne le credenziali. |
| `INVALID_RESET_TYPE` | 400 | `reset` deve essere `password` o `certificate`. |
| `RESET_FAILED` | 500 | Non è stato possibile reimpostare le credenziali. Riprova. |
| `NO_UPDATE_DATA` | 400 | Invia `name`, `ram` o entrambi per aggiornare un database. |

## Workspace

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `WORKSPACE_NOT_FOUND` | 404 | Il workspace non esiste, oppure non ne sei né il proprietario né un membro. |
| `WORKSPACE_LIMIT_REACHED` | 400 | Il tuo account ha già il numero massimo di workspace consentito dal piano. |
| `WORKSPACE_CREATION_FAILED` | 400 | Non è stato possibile creare il workspace. Riprova. |
| `INVALID_CODE` | 400 | Il codice di invito è mancante, malformato o scaduto. Chiedine uno nuovo alla persona. |
| `INVALID_GROUP` | 400 | `group` deve essere `view`, `manager`, `maintain` o `admin`. |
| `CANNOT_INVITE_OWNER` | 400 | Il codice di invito è tuo, e sei già il proprietario del workspace. |
| `CANNOT_EDIT_OWNER` | 400 | Il ruolo del proprietario non può essere modificato. |
| `CANNOT_LEAVE_OWNER` | 400 | Il proprietario non può abbandonare il workspace. Eliminalo invece. |
| `MEMBERS_LIMIT_REACHED` | 400 | Il workspace ha già il numero massimo di membri consentito dal piano del proprietario. |
| `MEMBER_ALREADY_ADDED` | 400 | Quella persona è già un membro. |
| `MEMBER_NOT_FOUND` | 400 / 404 | `memberId` è mancante (`400`) oppure quella persona non è più un membro (`404`). |
| `APPLICATIONS_LIMIT_REACHED` | 400 | Il workspace condivide già 100 applicazioni. |
| `APP_ALREADY_IN_WORKSPACE` | 400 | L'applicazione è già condivisa in questo workspace. |

## Piattaforma

| Codice | HTTP | Significato e soluzione |
| - | - | - |
| `INTERNAL_SERVER_ERROR` | 500 | Un errore imprevisto. Riprova una volta e contatta il supporto se il problema persiste. |
| `DATABASE_UNAVAILABLE` | 503 | Il database della piattaforma è momentaneamente non disponibile. Riprova tra qualche secondo. In questo stato, una risorsa esistente non viene mai segnalata come non trovata. |
| `CLUSTER_TIMEOUT` | 400 | Il server che ospita la risorsa non ha risposto in tempo. Riprova. |
| `CLUSTER_UNAVAILABLE` | 400 | Il server che ospita la risorsa non è raggiungibile in questo momento. Riprova a breve. |
| `REQUEST_ABORTED` | 400 | La richiesta è stata annullata prima che il server che ospita la risorsa rispondesse. Riprova. |
| `INVALID_PARAMETERS` | 400 | Una richiesta interna era malformata. Riprova e contatta il supporto se il problema persiste. |

<Note>
  I codici `AI_*` (`AI_DAILY_LIMIT_REACHED`, `AI_NO_PLAN_LIMIT_REACHED`, `AI_MAX_CONCURRENT_STREAMS`, `AI_UNAVAILABLE`) appartengono all'assistente AI della dashboard, che richiede una sessione della dashboard. Una chiave API non li riceve mai.
</Note>

## Vedi anche

* [Autenticazione e scope](/it/api-reference/authentication)
* [Rate limit per piano](/it/api-reference/limitations-and-restrictions)
* SDK JavaScript: [`SquareCloudAPIError`](/it/sdks/js/errors)
* SDK Python: [`SquareCloudAPIError`](/it/sdks/py/errors)
* SDK Go: [`*APIError`](/it/sdks/go/errors)
