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

# Erreurs

> Tous les codes d'erreur renvoyés par l'API Blob Storage, avec leur statut HTTP et la marche à suivre.

Toutes les erreurs ont la même forme. `code` est stable et destiné à votre code ; `message`, lorsqu'il est présent, est une explication lisible par un humain et peut changer.

```json theme={null}
{
    "status": "error",
    "code": "UPGRADE_REQUIRED",
    "message": "Custom metadata is available on Pro and Enterprise plans only."
}
```

<Tip>Ne réessayez que sur `429` et `5xx`, avec un backoff. Tout `4xx` autre que `429` signifie que la requête elle-même doit être modifiée.</Tip>

## Authentification et limites

| Code                       | HTTP | Signification                                                                                                          |
| -------------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------- |
| `ACCESS_DENIED`            | 401  | L'identifiant est absent ou n'a pas été reconnu.                                                                       |
| `PERMISSION_DENIED`        | 401  | Le compte n'a pas de plan payant actif, ce que cette action exige.                                                     |
| `MISSING_SCOPE`            | 403  | La clé API ne possède pas le scope requis par cette route. Voir [Authentification](/fr/blob-reference/authentication). |
| `RESOURCE_NOT_ALLOWED`     | 403  | La clé API est restreinte à des applications spécifiques.                                                              |
| `UPLOAD_TOKEN_NOT_ALLOWED` | 403  | Les jetons d'envoi ne fonctionnent que sur les routes d'envoi.                                                         |
| `UPLOAD_TOKEN_USED`        | 401  | Le jeton d'envoi n'a plus d'utilisations disponibles. Un jeton expiré répond `ACCESS_DENIED`.                          |
| `ACCOUNT_BLOCKED`          | 403  | Le compte n'est pas autorisé à stocker des fichiers. Contactez le support.                                             |
| `UPGRADE_REQUIRED`         | 403  | L'option ne fait pas partie de votre plan. Le `message` indique le plan qui la débloque.                               |
| `RATE_LIMIT`               | 429  | Le budget d'API de l'ensemble du compte est épuisé, ou l'IP a envoyé trop d'identifiants invalides.                    |
| `RATE_LIMITED`             | 429  | La limite propre à cette route a été atteinte. Patientez et réessayez.                                                 |

## Objets

| Code                                              | HTTP      | Signification                                                                                                                                                                                                                                                                                              |
| ------------------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `INVALID_OBJECT`                                  | 400       | L'id de l'objet est mal formé ou ne vous appartient pas.                                                                                                                                                                                                                                                   |
| `INVALID_OBJECT_NAME`                             | 400       | `name` ne correspond pas au motif autorisé (1 à 128 caractères).                                                                                                                                                                                                                                           |
| `INVALID_OBJECT_PREFIX`                           | 400       | `prefix` ne correspond pas au motif autorisé.                                                                                                                                                                                                                                                              |
| `INVALID_OBJECT_EXPIRE`                           | 400       | `expire` n'est pas une durée valide (1 heure à 1825 jours).                                                                                                                                                                                                                                                |
| `INVALID_OBJECT_PRIVATE`                          | 400       | `private` ne vaut ni `true` ni `false`.                                                                                                                                                                                                                                                                    |
| `INVALID_OBJECT_SECURITY_HASH`                    | 400       | `security_hash` n'est pas un booléen, ou vaut `false` sur un objet privé.                                                                                                                                                                                                                                  |
| `INVALID_OBJECT_OVERWRITE`                        | 400       | `overwrite` ne vaut ni `true` ni `false`.                                                                                                                                                                                                                                                                  |
| `INVALID_OBJECT_DISPOSITION`                      | 400       | `disposition` ne vaut ni `inline` ni `attachment`.                                                                                                                                                                                                                                                         |
| `INVALID_OBJECT_CACHE_CONTROL`                    | 400       | `cache_control` ne vaut ni `immutable`, ni `no-cache`, ni `max-age=60..31536000`.                                                                                                                                                                                                                          |
| `INVALID_OBJECT_METADATA`                         | 400       | `metadata` est mal formé, utilise une clé réservée, ou dépasse 5 clés ou 512 octets.                                                                                                                                                                                                                       |
| `INVALID_STORAGE_AUTO_DOWNLOAD`                   | 400       | `auto_download` ne vaut ni `true` ni `false`.                                                                                                                                                                                                                                                              |
| `INVALID_CHECKSUM`                                | 400       | `checksum_sha256` ne comporte pas 64 caractères hexadécimaux en minuscules.                                                                                                                                                                                                                                |
| `CHECKSUM_MISMATCH`                               | 400       | Le fichier ne correspond pas à `checksum_sha256`. Rien n'a été stocké.                                                                                                                                                                                                                                     |
| `INVALID_DESTINATION`                             | 400       | La `destination` de la copie est mal formée.                                                                                                                                                                                                                                                               |
| `SAME_OBJECT`                                     | 400       | La source et la destination de la copie sont le même objet.                                                                                                                                                                                                                                                |
| `NOTHING_TO_UPDATE`                               | 400       | La requête ne modifie aucun champ.                                                                                                                                                                                                                                                                         |
| `INVALID_CONTINUATION_TOKEN`                      | 400       | Le `cursor` de la liste est mal formé ou n'est plus valide. Recommencez sans curseur.                                                                                                                                                                                                                      |
| `TOO_MANY_OBJECTS`                                | 400       | Trop d'objets dans une seule requête (100 pour la suppression, 50 pour la mise à jour).                                                                                                                                                                                                                    |
| `PREFIX_NOT_ALLOWED`                              | 403       | Le jeton d'envoi est lié à un autre préfixe.                                                                                                                                                                                                                                                               |
| `OBJECT_NOT_FOUND`                                | 404       | L'objet n'existe pas.                                                                                                                                                                                                                                                                                      |
| `OBJECT_ALREADY_EXISTS`                           | 409       | Un objet avec cet id existe et `overwrite` vaut `false`.                                                                                                                                                                                                                                                   |
| `OBJECT_IS_LEGACY`                                | par objet | Renvoyé dans les `results` de [Mise à jour d'objet](/fr/blob-reference/endpoint/update). L'objet est un fichier hérité, stocké avant la mise à jour de septembre 2026, et doit être déplacé avec [Copie d'objet](/fr/blob-reference/endpoint/copy) (`move: true`) avant que ses en-têtes puissent changer. |
| `VISIBILITY_CHANGE_FAILED`                        | par objet | Renvoyé dans les `results` de [Mise à jour d'objet](/fr/blob-reference/endpoint/update) : l'objet n'a pas pu être rendu privé et **est toujours public**. Réessayez.                                                                                                                                       |
| `UPDATE_FAILED` / `COPY_FAILED` / `DELETE_FAILED` | 500       | L'opération a échoué. Réessayez.                                                                                                                                                                                                                                                                           |

## Envois

| Code                                                         | HTTP | Signification                                                                                                                              |
| ------------------------------------------------------------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `INVALID_CONTENT_TYPE`                                       | 409  | [Object Post](/fr/blob-reference/endpoint/post) n'accepte que `multipart/form-data` avec exactement un fichier.                            |
| `INVALID_FILE`                                               | 400  | La partie fichier est absente ou illisible.                                                                                                |
| `INVALID_FILE_TYPE`                                          | 400  | L'extension du fichier est mal formée ou trop longue.                                                                                      |
| `BLOCKED_FILE_TYPE`                                          | 400  | Les exécutables et les installateurs ne sont pas acceptés.                                                                                 |
| `FILE_TYPE_NOT_ALLOWED`                                      | 400  | Le jeton d'envoi ou la règle du préfixe n'autorise pas cette extension.                                                                    |
| `FILE_TOO_SMALL`                                             | 400  | Les fichiers doivent faire au moins 512 octets.                                                                                            |
| `FILE_TOO_LARGE`                                             | 413  | Au-delà de 100 Mo en une seule requête (utilisez les envois chunked), ou au-delà de la taille autorisée par le plan, le jeton ou la règle. |
| `STORAGE_QUOTA_EXCEEDED`                                     | 403  | Le compte a atteint son stockage inclus.                                                                                                   |
| `TOO_MANY_CONCURRENT_UPLOADS`                                | 429  | 4 envois sont déjà en cours sur ce compte.                                                                                                 |
| `PRIVATE_STORAGE_UNAVAILABLE` / `PUBLIC_STORAGE_UNAVAILABLE` | 503  | Le stockage est temporairement indisponible. Réessayez.                                                                                    |
| `UPLOAD_FAILED`                                              | 500  | L'envoi a échoué. Réessayez.                                                                                                               |

## Envois chunked

| Code                         | HTTP | Signification                                                      |
| ---------------------------- | ---- | ------------------------------------------------------------------ |
| `INVALID_UPLOAD_TOKEN`       | 400  | Le jeton `upload` est absent, mal formé ou ne vous appartient pas. |
| `INVALID_CHUNK_PART`         | 400  | `part` n'est pas un entier de 1 à 2048.                            |
| `EMPTY_CHUNK`                | 400  | Le corps de la partie est vide.                                    |
| `CHUNK_TOO_LARGE`            | 413  | Une partie dépasse 32 Mo.                                          |
| `CHUNK_TOO_SMALL`            | 400  | Une partie autre que la dernière fait moins de 5 Mo.               |
| `NO_CHUNKS_UPLOADED`         | 400  | Complete a été appelé avant l'envoi de la moindre partie.          |
| `TOO_MANY_OPEN_UPLOADS`      | 429  | Le compte a 32 envois ouverts. Terminez-en ou annulez-en un.       |
| `TOO_MANY_CONCURRENT_CHUNKS` | 429  | 6 parties sont déjà en cours d'envoi sur ce compte.                |
| `UPLOAD_NOT_FOUND`           | 404  | L'envoi a été terminé, annulé ou a expiré.                         |

## Liens temporaires et partages

| Code                       | HTTP | Signification                                                       |
| -------------------------- | ---- | ------------------------------------------------------------------- |
| `INVALID_DOWNLOAD_EXPIRES` | 400  | `expires` est en dehors de l'intervalle de 60 à 86400 secondes.     |
| `INVALID_FILENAME`         | 400  | `filename` est vide après suppression des caractères invalides.     |
| `INVALID_EXPIRES_IN`       | 400  | `expires_in` est en dehors de l'intervalle autorisé.                |
| `INVALID_MAX_DOWNLOADS`    | 400  | `max_downloads` est en dehors de l'intervalle de 1 à 10000.         |
| `INVALID_PASSWORD`         | 400  | Le mot de passe doit comporter de 8 à 128 caractères.               |
| `INVALID_SHARE`            | 400  | L'id du partage est mal formé.                                      |
| `SHARE_NOT_FOUND`          | 404  | Le partage n'existe pas ou a déjà été révoqué.                      |
| `TOO_MANY_SHARES`          | 409  | Le compte a 1000 partages actifs. Révoquez-en d'abord quelques-uns. |

## Paramètres du compte et jetons d'envoi

| Code                                                                                                                                                              | HTTP | Signification                                                                                                                                       |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `INVALID_BODY`                                                                                                                                                    | 400  | Le corps est absent ou n'est pas un objet JSON.                                                                                                     |
| `INVALID_RULES`                                                                                                                                                   | 400  | `rules` n'est pas un tableau.                                                                                                                       |
| `TOO_MANY_RULES`                                                                                                                                                  | 400  | Plus de 20 règles sur Enterprise. Sur les autres plans, dépasser la limite du plan (5 sur Hobby et Standard, 10 sur Pro) répond `UPGRADE_REQUIRED`. |
| `INVALID_RULE_PREFIX` / `DUPLICATE_RULE_PREFIX`                                                                                                                   | 400  | Le préfixe d'une règle est mal formé, ou reprend celui d'une autre règle.                                                                           |
| `INVALID_RULE_PRIVATE` / `INVALID_RULE_EXPIRE` / `INVALID_RULE_MAX_SIZE` / `INVALID_RULE_EXTENSIONS` / `INVALID_RULE_CACHE_CONTROL` / `INVALID_RULE_DELETE_AFTER` | 400  | Un champ d'une règle est invalide. La réponse contient le `prefix` de la règle.                                                                     |
| `INVALID_EXPIRES_IN` / `INVALID_MAX_USES` / `INVALID_MAX_SIZE` / `INVALID_ALLOWED_EXTENSIONS`                                                                     | 400  | Un champ du jeton d'envoi est hors limites.                                                                                                         |
| `UPLOAD_TOKEN_TOO_LARGE`                                                                                                                                          | 400  | Les options du jeton ne tiennent pas dans un jeton. Raccourcissez les métadonnées ou la liste d'extensions.                                         |

## Identifiants S3

| Code                 | HTTP | Signification                                                                                   |
| -------------------- | ---- | ----------------------------------------------------------------------------------------------- |
| `API_KEY_REQUIRED`   | 400  | Les identifiants S3 dérivent d'une clé API, pas d'une session du tableau de bord.               |
| `LEGACY_API_KEY`     | 400  | La clé API utilise l'ancien format. Créez une nouvelle clé dans les paramètres de votre compte. |
| `INVALID_CREDENTIAL` | 401  | La clé API n'a pas pu être vérifiée.                                                            |

La [passerelle S3](/fr/blob-reference/s3-compatibility) répond plutôt avec les erreurs XML S3 standard.

## Globales

| Code                            | HTTP | Signification                                |
| ------------------------------- | ---- | -------------------------------------------- |
| `ROUTE_NOT_FOUND` / `NOT_FOUND` | 404  | La route n'existe pas.                       |
| `INTERNAL_SERVER_ERROR`         | 500  | Défaillance inattendue. Réessayez plus tard. |
