# Codes d’erreur

Chaque code que Formerie peut vous envoyer, ce qu’il veut dire et quoi faire. Utilisez la recherche de votre navigateur pour
trouver un code, comme `FORM_CLOSED`. Vous ne savez pas encore ce qui ne va pas? Commencez par le [Dépannage](/fr/guides/troubleshooting/), qui part de ce que vous voyez.

## Comment utiliser cette page

**Fiez-vous au code, pas au message.** Un `code` est stable : votre programme peut en dépendre sans risque. Un `message` peut
changer ou être traduit : montrez-le aux gens, mais ne faites pas de test dessus.

```json
{
  "ok": false,
  "error": {
    "code": "FORM_CLOSED",
    "message": "This form is no longer accepting submissions.",
    "requestId": "c1f4e0a2-7b1d-4a55-9d10-3f6a8e2b7c44"
  }
}
```

**Pour nous joindre.** La plupart des réponses d’erreur incluent `error.requestId`, et l’en-tête de réponse `X-Request-Id` peut
contenir la même valeur. Quand une requête échoue de notre côté, avec un état de 500 ou plus, l’application l’affiche comme
**Référence**. Citez-la quand vous [nous écrivez](https://formerie.com/fr/contact/) : elle nous permet de trouver cette requête précise.

**Lire une entrée.** Chacune donne le code, l’état HTTP s’il y en a un, ce que ça veut dire, quand ça arrive et quoi faire. Une
entrée sans état n’est pas une erreur HTTP. C’est une valeur à l’intérieur d’une réponse, comme un diagnostic ou un élément de
`issues`, et chaque section dit où la trouver.

## Soumettre un formulaire

Ce que votre page ou votre serveur reçoit quand il charge, vérifie ou soumet un formulaire public. Le serveur s’arrête à la
première vérification qui échoue. [Une soumission a été refusée](/fr/guides/troubleshooting/#une-soumission-a-été-refusée) donne l’ordre.

- `FORM_NOT_FOUND` (HTTP 404) : Aucun formulaire publié accessible ici. **Quand :** l’identifiant de l’espace de travail ou du formulaire est erroné, le formulaire n’a jamais été publié, **Accès public** est à **Non publié**, un nom d’hôte personnalisé n’est pas connecté ou, dans l’application, le formulaire n’est pas dans cet espace de travail. **À faire :** Publiez dans l’onglet **Publication**, et copiez l’adresse à partir de là.
- `FORM_DISABLED` (HTTP 403) : Le formulaire est désactivé. **Quand :** le formulaire ou son espace de travail n’est pas activé. **À faire :** Vérifiez le formulaire et l’espace de travail dans l’application. Si rien ne l’explique, écrivez-nous.
- `FORM_NOT_OPEN` (HTTP 403) : Le formulaire ne prend pas encore de réponses. **Quand :** avant l’ouverture de sa **Fenêtre de réponse**. **À faire :** Changez la fenêtre dans l’onglet **Publication**, ou patientez.
- `FORM_CLOSED` (HTTP 403) : Le formulaire ne prend plus de réponses. **Quand :** **Accès public** est à **Fermé**, ou la **Fenêtre de réponse** est terminée. **À faire :** Changez-les dans l’onglet **Publication**.
- `FORM_MAINTENANCE` (HTTP 503) : Le formulaire est temporairement indisponible. **Quand :** **Accès public** est à **Maintenance**. **À faire :** Remettez-le à **Public**.
- `FORBIDDEN_ORIGIN` (HTTP 403) : La requête vient d’un site qui n’est pas autorisé. **Quand :** l’en-tête `Origin` n’est pas dans les origines autorisées du formulaire, ou une requête de l’application ne vient pas de l’application. **À faire :** Consultez [Une erreur CORS ou d’origine](/fr/guides/troubleshooting/#une-erreur-cors-ou-dorigine).
- `VALIDATION_FAILED` (HTTP 422) : Une ou plusieurs réponses ou réglages ont échoué à une vérification. **Quand :** une soumission contient de mauvaises réponses, ou un formulaire enregistré a un mauvais réglage. **À faire :** Lisez `error.issues` et `error.fields`. Chaque élément a un `path`, un `code` et un `message`, énumérés plus bas.
- `SPAM_REJECTED` (HTTP 403) : Une vérification antipourriel a arrêté la soumission. **Quand :** le champ caché est rempli, elle a été envoyée trop vite ou elle contient trop de liens. **À faire :** Consultez [Refusée comme pourriel](/fr/guides/troubleshooting/#refusée-comme-pourriel).
- `TURNSTILE_FAILED` (HTTP 403) : La vérification humaine a échoué, peu importe le fournisseur. **Quand :** le jeton est absent, déjà utilisé ou expiré, ou les clés ou le domaine ne correspondent pas. **À faire :** Consultez [La vérification a échoué](/fr/guides/troubleshooting/#la-vérification-a-échoué).
- `RATE_LIMITED` (HTTP 429) : Trop de requêtes en peu de temps. **Quand :** les **Limites de soumission** d’un formulaire ou une limite à court terme des routes publiques sont atteintes, ou un courriel de vérification ou d’invitation est renvoyé trop tôt. **À faire :** Patientez, selon `Retry-After` s’il est envoyé, et gardez les réponses du visiteur à l’écran.
- `FORM_QUOTA_REACHED` (HTTP 409) : Le formulaire a atteint sa limite de soumissions acceptées. **Quand :** il arrive au **Nombre maximal de soumissions acceptées**. **À faire :** Augmentez ou retirez la limite sous **Limites de soumission**, dans **Paramètres**.
- `DUPLICATE_SUBMISSION` (HTTP 409) : Cette soumission a déjà été acceptée. **Quand :** une `metadata.idempotencyKey` est envoyée de nouveau. **À faire :** Traitez-la comme un succès. Utilisez une nouvelle clé pour chaque nouvelle soumission.
- `QUEUE_FAILED` (HTTP 503) : Le courriel ou le nouvel essai n’a pas pu être mis en file. **Quand :** une soumission ou un nouvel essai de livraison n’a pas pu être transmis pour l’envoi. **À faire :** Réessayez sous peu.

### Tests

Ces codes répondent seulement à un test. Voir [Tester votre formulaire](/fr/guides/test-your-form/).

- `TEST_LIMIT_REACHED` (HTTP 429) : Rien n’a été enregistré, parce que ce formulaire ou cet espace de travail a atteint sa limite de tests. **Quand :** un test a été envoyé au-delà de sa limite quotidienne, ou au-delà du nombre ou de la taille des tests qu’un espace peut garder. **À faire :** Supprimez des tests dans l’application, ou réessayez demain. Si de vrais visiteurs peuvent voir ce message, ajoutez leur site aux **Sites autorisés**.
- `TEST_KEY_INVALID` (HTTP 401) : Rien n’a été enregistré, et la soumission n’est pas partie comme une vraie. **Quand :** l’en-tête `X-Formerie-Test-Key` contient une clé erronée, révoquée, expirée ou liée à un autre formulaire. **À faire :** Créez une nouvelle clé dans l’onglet **Tests** du formulaire, ou retirez l’en-tête.
- `TEST_LINK_INVALID` (HTTP 410) : Rien n’a été enregistré. **Quand :** un lien d’essai a expiré ou a été révoqué, ou son formulaire est archivé ou à la corbeille. **À faire :** Demandez un nouveau lien à la personne qui l’a partagé.
- `TEST_DRAFT_INVALID` (HTTP 409) : Rien n’a été enregistré. **Quand :** le brouillon du formulaire a un problème, alors on ne peut pas encore l’essayer. **À faire :** Corrigez ce que l’onglet **Publier** du formulaire indique, puis réessayez.
- `TEST_KEY_IGNORED_ORIGIN_LISTED` : Un avis, pas une erreur. La soumission est réelle. **Quand :** une clé de test est venue d’un site dans les **Sites autorisés**, alors la clé a été ignorée. **À faire :** Retirez la clé des requêtes de ce site.
- `TEST_EMAIL_UNAVAILABLE` (HTTP 409) : Le test n’a pas été envoyé par courriel. **Quand :** il n’a pas d’aperçu de courriel, ou votre courriel de connexion n’est pas confirmé. **À faire :** Confirmez votre courriel, ou envoyez un nouveau test.
- `TEST_EMAIL_LIMIT` : Le test a été gardé, sans courriel. **Quand :** le lien, la clé ou le compte a atteint sa limite quotidienne de courriels de test. **À faire :** Réessayez demain.
- `TEST_EMAIL_NO_PREVIEW` : Le test a été gardé, sans courriel. **Quand :** son courriel n’a pas pu être préparé à son arrivée. **À faire :** Vérifiez le gabarit du formulaire, puis envoyez un nouveau test.
- `TEST_EMAIL_NO_VERIFIED_ADDRESS` : Le test a été gardé, sans courriel. **Quand :** la personne visée n’a pas de courriel de connexion confirmé, ou a quitté l’espace de travail. **À faire :** Utilisez **M’envoyer** sur l’entrée.
- `TEST_EMAIL_QUEUE_FAILED` : Le test a été gardé, sans courriel. **Quand :** le courriel n’a pas pu être mis en file d’attente. **À faire :** Utilisez **M’envoyer** sur l’entrée.
- `TEST_EMAIL_SENDER_UNAVAILABLE` : Le test a été gardé, sans courriel. **Quand :** l’expéditeur du formulaire n’est pas prêt. **À faire :** Terminez la configuration de l’expéditeur, puis utilisez **M’envoyer**.
- `TEST_EMAIL_SEND_FAILED` : Le test a été gardé et le courriel a échoué. **Quand :** le fournisseur l’a refusé, même après une reprise. **À faire :** Vérifiez l’expéditeur et le fournisseur du formulaire, puis utilisez **M’envoyer**.

### Réponses

Ces codes arrivent dans `error.issues` et `error.fields` d’un `VALIDATION_FAILED`, un par problème. Affichez chaque `message` à
côté de son champ. Vos propres validateurs renvoient le `code` que vous leur avez donné. La [Référence de la définition de formulaire](/fr/guides/form-reference/) donne chaque option.

- `FIELD_REQUIRED` : Une réponse obligatoire est vide. **Quand :** le champ est visible et `required`. **À faire :** Demandez une réponse. Dans votre propre interface, envoyez le nom exact du champ.
- `FIELD_TYPE_INVALID` : La réponse n’a pas le bon type. **Quand :** un nombre ne peut pas être lu comme un nombre, ou une valeur n’est pas ce que le champ contient. **À faire :** Envoyez le type attendu par le champ.
- `FIELD_OBJECT_INVALID` : La réponse d’un groupe n’est pas un objet. **Quand :** un champ `group` reçoit une autre valeur. **À faire :** Envoyez les groupes comme des objets imbriqués.
- `FIELD_STRING_TOO_SHORT`, `FIELD_STRING_TOO_LONG` : La longueur du texte est hors limites. **Quand :** il est sous `min` ou au-dessus de `max`. **À faire :** Changez la réponse ou la limite.
- `FIELD_STRING_LENGTH_INVALID` : Le texte n’a pas la longueur exacte. **Quand :** il ne respecte pas `exactLength`. **À faire :** Changez la réponse ou le réglage.
- `FIELD_STRING_PREFIX_INVALID`, `FIELD_STRING_SUFFIX_INVALID` : Le début ou la fin du texte ne convient pas. **Quand :** il ne respecte pas `startsWith` ou `endsWith`. **À faire :** Changez la réponse ou le réglage.
- `FIELD_STRING_CONTAINS_REQUIRED`, `FIELD_STRING_CONTAINS_FORBIDDEN` : Il manque des mots requis au texte, ou il en contient de refusés. **Quand :** il ne respecte pas `contains` ou `notContains`. **À faire :** Changez la réponse ou le réglage.
- `FIELD_PATTERN_INVALID` : Le texte n’a pas le bon format. **Quand :** il ne respecte pas `pattern`. **À faire :** Changez la réponse ou le motif.
- `FIELD_VALUE_NOT_ALLOWED` : La réponse ne fait pas partie des choix. **Quand :** elle n’est pas dans `allowedValues`. **À faire :** Envoyez une des valeurs prévues.
- `FIELD_EMAIL_INVALID` : Ce n’est pas une adresse courriel. **Quand :** une réponse `email` échoue à la vérification du format. **À faire :** Demandez une adresse valide.
- `FIELD_PHONE_INVALID` : Ce n’est pas un numéro de téléphone. **Quand :** il ne respecte pas `phoneFormat`, comme `+15145550123`. **À faire :** Demandez le numéro complet.
- `FIELD_UUID_INVALID` : Ce n’est pas un UUID de la bonne version. **Quand :** il ne respecte pas `uuidVersion`. **À faire :** Envoyez un UUID valide.
- `FIELD_COUNTRY_CODE_INVALID` : Ce n’est pas un code de pays. **Quand :** il ne respecte pas `countryCode`. **À faire :** Envoyez un code de deux lettres.
- `FIELD_POSTAL_CODE_INVALID` : Ce n’est pas un code postal de ce pays. **Quand :** il ne respecte pas `postalCodeCountry`. **À faire :** Demandez un code valide.
- `FIELD_REGION_CODE_INVALID` : Ce n’est pas un code de région de ce pays. **Quand :** il ne respecte pas `regionCodeCountry`. **À faire :** Demandez un code valide.
- `FIELD_URL_INVALID` : Ce n’est pas une adresse Web. **Quand :** une réponse `url` ne peut pas être lue. **À faire :** Demandez une adresse complète.
- `FIELD_URL_PROTOCOL_NOT_ALLOWED` : L’adresse utilise un protocole refusé. **Quand :** il n’est pas dans `allowedProtocols`. **À faire :** Utilisez un protocole autorisé, comme `https`.
- `FIELD_DATE_INVALID` : Ce n’est pas une vraie date. **Quand :** une réponse `date` ne peut pas être lue. **À faire :** Demandez une vraie date.
- `FIELD_DATE_TOO_EARLY`, `FIELD_DATE_TOO_LATE` : La date est hors limites. **Quand :** elle est avant `dateMin` ou après `dateMax`. **À faire :** Changez la date ou la plage.
- `FIELD_TIME_INVALID` : Ce n’est pas une heure au bon format. **Quand :** elle ne respecte pas `timeFormat`. **À faire :** Envoyez `HH:mm` ou `HH:mm:ss`, comme le demande le champ.
- `FIELD_DATETIME_INVALID` : Ce n’est pas une date et une heure au bon format. **Quand :** elle ne respecte pas `dateTimeFormat`. **À faire :** Envoyez du ISO 8601 avec un fuseau horaire.
- `FIELD_NUMBER_TOO_SMALL`, `FIELD_NUMBER_TOO_LARGE` : Le nombre est hors limites. **Quand :** il est sous `min` ou au-dessus de `max`. **À faire :** Changez la réponse ou la plage.
- `FIELD_INTEGER_REQUIRED` : Le nombre doit être entier. **Quand :** `integer` est activé. **À faire :** Demandez un nombre entier.
- `FIELD_DECIMAL_PLACES_INVALID` : Trop de décimales. **Quand :** il dépasse `maxDecimalPlaces`. **À faire :** Arrondissez la réponse ou augmentez le réglage.
- `FIELD_ACCEPTED_REQUIRED` : Une case de consentement n’a pas été acceptée. **Quand :** `accepted` est activé et la case n’est pas cochée. **À faire :** Demandez à la personne d’accepter.
- `FIELD_SELECTION_TOO_FEW`, `FIELD_SELECTION_TOO_MANY` : Le nombre d’options choisies ne convient pas. **Quand :** il est sous `minSelections` ou au-dessus de `maxSelections`. **À faire :** Changez la sélection ou les limites.
- `FIELD_ARRAY_TOO_SHORT`, `FIELD_ARRAY_TOO_LONG` : Une liste n’a pas le bon nombre d’éléments. **Quand :** elle est sous `minItems` ou au-dessus de `maxItems`. **À faire :** Changez la liste ou les limites.
- `FIELD_ARRAY_DUPLICATES` : Une liste répète un élément. **Quand :** `uniqueItems` est activé. **À faire :** Retirez les répétitions.

## Enregistrer un formulaire

Quand une modification à un formulaire est refusée, ce que vous voyez dans l’application à l’enregistrement. Le premier code est celui de la réponse elle-même. Les autres arrivent dans
`error.issues` d’un `VALIDATION_FAILED`, chacun avec un `path` vers le réglage. Corrigez ces chemins et enregistrez de nouveau.

- `CONFIG_VERSION_CONFLICT` (HTTP 409) : Le formulaire ou l’espace de travail a changé depuis son chargement. **Quand :** quelqu’un d’autre a enregistré avant vous, ou un ancien onglet enregistre. **À faire :** Rechargez, puis refaites votre modification.

### Tous les réglages

- `FORM_CONFIG_UNKNOWN_KEY` : Cette clé n’est pas un réglage à cet endroit. **Quand :** une clé est mal écrite ou mal placée. **À faire :** Utilisez la clé donnée dans `suggestion` s’il y en a une, ou retirez-la.
- `FORM_CONFIG_OBJECT_REQUIRED`, `FORM_CONFIG_ARRAY_REQUIRED`, `FORM_CONFIG_STRING_REQUIRED`, `FORM_CONFIG_STRING_ARRAY_REQUIRED`, `FORM_CONFIG_STRING_MAP_REQUIRED`, `FORM_CONFIG_BOOLEAN_REQUIRED`, `FORM_CONFIG_NUMBER_REQUIRED`, `FORM_CONFIG_INTEGER_REQUIRED` : Un réglage n’a pas le bon type. **Quand :** la valeur à `path` n’est pas ce que dit le nom, comme un objet ou un nombre entier. **À faire :** Envoyez ce type.
- `FORM_CONFIG_ARRAY_TOO_SHORT`, `FORM_CONFIG_ARRAY_TOO_LONG` : Une liste a trop peu ou trop d’entrées. **Quand :** elle dépasse les bornes données dans `message`. **À faire :** Ajoutez ou retirez des entrées.
- `FORM_CONFIG_STRING_TOO_LONG` : Un réglage de texte est trop long. **Quand :** il dépasse la longueur donnée dans `message`. **À faire :** Raccourcissez-le.
- `FORM_CONFIG_NUMBER_TOO_SMALL` : Un nombre est sous son minimum. **Quand :** il est sous la valeur donnée dans `message`. **À faire :** Augmentez-le.
- `FORM_CONFIG_RANGE_INVALID` : Un minimum dépasse son maximum. **Quand :** une paire comme `min` et `max` est inversée. **À faire :** Inversez-les ou corrigez-les.
- `FORM_CONFIG_ENUM_INVALID` : La valeur ne fait pas partie des options. **Quand :** elle n’est pas dans la liste donnée dans `message`. **À faire :** Utilisez une valeur de la liste.
- `FORM_CONFIG_ID_DUPLICATE` : Deux entrées ont le même `id`. **Quand :** une liste le répète. **À faire :** Donnez à chaque entrée le sien.
- `FORM_CONFIG_CODE_INVALID` : Un `code` personnalisé est mal formé. **Quand :** il contient autre chose que des majuscules, des chiffres et `_`. **À faire :** Utilisez un code comme `CUSTOM_POSTAL_CODE`.
- `FORM_CONFIG_FIELD_PATH_INVALID` : Un chemin de champ est mal formé. **Quand :** il n’utilise pas de points et de crochets. **À faire :** Écrivez-le comme `contact.email`.
- `FORM_CONFIG_URL_INVALID`, `FORM_CONFIG_URL_PROTOCOL_INVALID` : Une adresse Web dans un réglage n’est pas valide. **Quand :** elle ne peut pas être lue, ou n’utilise pas un protocole autorisé. **À faire :** Utilisez une adresse `https` complète.
- `FORM_CONFIG_EMAIL_INVALID` : Un courriel dans un réglage n’est pas valide. **Quand :** ce n’est pas une adresse. **À faire :** Corrigez l’adresse.
- `FORM_CONFIG_DATE_INVALID`, `FORM_CONFIG_DATETIME_INVALID` : Une date dans un réglage n’est pas valide. **Quand :** une date n’est pas un vrai `YYYY-MM-DD`, ou une date et une heure n’ont pas de fuseau horaire. **À faire :** Corrigez le format.
- `FORM_CONFIG_COLOR_INVALID` : Une couleur n’est pas valide. **Quand :** ce n’est pas une valeur `#RRGGBB`. **À faire :** Utilisez ce format.
- `FORM_CONFIG_CSS_LENGTH_INVALID` : Une taille n’est pas valide. **Quand :** ce n’est pas une longueur sûre. **À faire :** Utilisez une valeur comme `44rem`, `720px`, `90%` ou `72ch`.
- `FORM_CONFIG_LANGUAGE_INVALID` : La langue n’est pas valide. **Quand :** ce n’est pas une étiquette de langue. **À faire :** Utilisez-en une comme `en-CA` ou `fr-CA`.
- `FORM_CONFIG_MESSAGES_INVALID` : Une liste de messages n’est pas valide. **Quand :** ce n’est pas un objet de valeurs textuelles. **À faire :** Envoyez du texte pour chacun.

### Champs

- `FORM_CONFIG_FIELDS_REQUIRED` : Le formulaire n’a aucun champ. **Quand :** la liste est vide. **À faire :** Ajoutez un champ.
- `FORM_CONFIG_FIELD_INVALID` : Un champ n’est pas un objet. **Quand :** une entrée sous `fields` est une autre valeur. **À faire :** Envoyez un objet avec un `type`.
- `FORM_CONFIG_FIELD_TYPE_INVALID` : Ce type de champ n’existe pas. **Quand :** `type` n’est pas l’un des douze. **À faire :** Consultez la [Référence de la définition de formulaire](/fr/guides/form-reference/).
- `FORM_CONFIG_TOO_MANY_FIELDS`, `FORM_CONFIG_NESTING_TOO_DEEP` : Le formulaire est trop gros. **Quand :** il a trop de champs ou de niveaux imbriqués. **À faire :** Simplifiez-le. La limite est dans `message`.
- `FORM_CONFIG_FIELD_OPTION_INVALID` : Cette option ne fonctionne pas ici. **Quand :** elle ne s’applique pas à ce type de champ ou sa valeur est mauvaise. **À faire :** Lisez `message`, puis retirez-la ou corrigez-la.
- `FORM_CONFIG_FIELD_OPTION_CONFLICT` : Deux options ne peuvent pas être utilisées ensemble. **Quand :** comme `exactLength` avec `min`. **À faire :** Gardez-en une.
- `FORM_CONFIG_DEFAULT_VALUE_INVALID`, `FORM_CONFIG_DEFAULT_VALUE_NOT_ALLOWED` : `defaultValue` ne convient pas. **Quand :** son type est mauvais, ou elle n’est pas dans `allowedValues`. **À faire :** Changez-la.
- `FORM_CONFIG_COUNTRY_CODE_INVALID`, `FORM_CONFIG_COUNTRY_UNSUPPORTED` : Un réglage de pays n’est pas valide. **Quand :** `countryCode` n’est pas `iso2`, ou une vérification de code postal ou de région n’est pas `CA` ou `US`. **À faire :** Utilisez ces valeurs.
- `FORM_CONFIG_PHONE_FORMAT_INVALID`, `FORM_CONFIG_UUID_VERSION_INVALID`, `FORM_CONFIG_TIME_FORMAT_INVALID`, `FORM_CONFIG_DATETIME_FORMAT_INVALID` : Un réglage de format n’est pas valide. **Quand :** ce n’est pas `e164`, `any`, `v4`, `v7`, `HH:mm`, `HH:mm:ss` ou `iso8601`, selon ce que permet ce réglage. **À faire :** Utilisez une de ces valeurs.
- `FORM_CONFIG_URL_PROTOCOL_UNSAFE` : Un protocole n’est pas sûr. **Quand :** `allowedProtocols` en contient un refusé comme dangereux. **À faire :** Retirez-le.
- `FORM_CONFIG_REGEX_PATTERN_INVALID`, `FORM_CONFIG_REGEX_PATTERN_TOO_LONG`, `FORM_CONFIG_REGEX_FLAGS_INVALID` : Une expression régulière est refusée. **Quand :** elle ne compile pas, elle est trop longue ou elle a d’autres drapeaux que `i`, `m` et `u`. **À faire :** Corrigez-la.
- `FORM_CONFIG_PROCESSOR_REQUIRED`, `FORM_CONFIG_PIPELINE_STEP_INVALID`, `FORM_CONFIG_TOO_MANY_PROCESSORS` : Le pipeline d’un champ n’est pas valide. **Quand :** il est vide, il a trop d’étapes, ou une étape n’est pas un nettoyage, un validateur ou une transformation. **À faire :** Corrigez les étapes.
- `FORM_CONFIG_SANITIZER_TYPE_INVALID`, `FORM_CONFIG_TRANSFORMER_TYPE_INVALID`, `FORM_CONFIG_CASE_TRANSFORM_INVALID`, `FORM_CONFIG_TOO_MANY_MAP_ENTRIES` : Un nettoyage ou une transformation est refusé. **Quand :** le type n’existe pas, la casse n’est pas `upper` ou `lower`, ou une table de correspondance est trop longue. **À faire :** Consultez la [Référence de la définition de formulaire](/fr/guides/form-reference/).

### Validateurs et conditions

- `FORM_CONFIG_VALIDATOR_INVALID` : Le `type` de validateur n’existe pas. **Quand :** il est mal écrit ou non pris en charge. **À faire :** Utilisez un type prévu.
- `FORM_CONFIG_VALIDATOR_REQUIRED` : Une règle n’a rien à vérifier. **Quand :** une action n’a ni `validator` ni `validatorRef`. **À faire :** Ajoutez-en un.
- `FORM_CONFIG_VALIDATOR_REF_UNKNOWN` : Un `validatorRef` ne mène nulle part. **Quand :** aucun préréglage n’a ce nom. **À faire :** Corrigez le nom.
- `FORM_CONFIG_VALIDATOR_TOO_DEEP`, `FORM_CONFIG_TOO_MANY_VALIDATORS`, `FORM_CONFIG_TOO_MANY_RULES` : Les règles sont trop grosses. **Quand :** elles sont trop imbriquées, ou trop nombreuses. **À faire :** Simplifiez-les. La limite est dans `message`.
- `FORM_CONFIG_RULE_ID_DUPLICATE` : Deux règles de validation ont le même identifiant. **Quand :** un `id` se répète. **À faire :** Changez-en un.
- `FORM_CONFIG_FIELD_REF_UNKNOWN` : Un chemin désigne un champ qui n’existe pas. **Quand :** un champ a été renommé ou retiré. **À faire :** Corrigez le chemin.
- `FORM_CONFIG_FIELD_REF_NOT_SCALAR`, `FORM_CONFIG_FIELD_REF_TYPE_INVALID` : Un chemin désigne le mauvais genre de champ. **Quand :** il mène à un groupe, ou à un type que ce réglage ne peut pas utiliser. **À faire :** Choisissez un champ qui convient.
- `FORM_CONFIG_CONDITION_OPERATOR_INVALID` : L’`operator` de la condition n’existe pas. **Quand :** il est mal écrit ou non pris en charge. **À faire :** Consultez [Conditions](/fr/guides/form-reference/#conditions).
- `FORM_CONFIG_CONDITION_REQUIRED` : Un groupe de conditions est vide. **Quand :** il n’a aucune condition. **À faire :** Ajoutez-en une, ou retirez le groupe.
- `FORM_CONFIG_CONDITION_TOO_DEEP`, `FORM_CONFIG_TOO_MANY_CONDITIONS`, `FORM_CONFIG_TOO_MANY_NAMED_CONDITIONS`, `FORM_CONFIG_NAMED_CONDITION_TOO_LONG` : Les conditions sont trop grosses. **Quand :** elles sont trop imbriquées, trop nombreuses ou trop longues. **À faire :** Simplifiez-les. La limite est dans `message`.
- `FORM_CONFIG_VISIBILITY_RULE_ID_DUPLICATE`, `FORM_CONFIG_VISIBILITY_RULE_PATH_DUPLICATE` : Des règles de visibilité se chevauchent. **Quand :** deux ont le même identifiant, ou visent le même champ. **À faire :** Gardez-en une par champ.
- `FORM_CONFIG_VISIBILITY_STATE_INVALID` : L’état de visibilité n’est pas valide. **Quand :** ce n’est ni `visible` ni `hidden`. **À faire :** Utilisez une de ces valeurs.

### Étapes et contenu

- `FORM_CONFIG_TOO_MANY_STEPS`, `FORM_CONFIG_STEP_SUMMARY_TOO_LONG` : Les étapes sont trop grosses. **Quand :** elles sont trop nombreuses, ou un résumé est trop long. **À faire :** Raccourcissez-les. La limite est dans `message`.
- `FORM_CONFIG_STEP_VALIDATE_ON_INVALID` : `validateOn` n’est pas valide. **Quand :** ce n’est pas `change`, `blur` ou `stepSubmit`. **À faire :** Utilisez une de ces valeurs.
- `FORM_CONFIG_CONTENT_BLOCK_TYPE_INVALID` : Ce type de bloc de contenu n’existe pas. **Quand :** ce n’est ni `text` ni `separator`. **À faire :** Utilisez une de ces valeurs.
- `FORM_CONFIG_CONTENT_BLOCK_POSITION_CONFLICT` : Un bloc a deux positions. **Quand :** il est réglé à la fois avant et après un champ. **À faire :** Gardez-en une.
- `FORM_CONFIG_TOO_MANY_CONTENT_BLOCKS`, `FORM_CONFIG_CONTENT_BLOCK_TOO_LONG` : Les blocs de contenu sont trop gros. **Quand :** ils sont trop nombreux, ou l’un d’eux est trop long. **À faire :** Raccourcissez-les. La limite est dans `message`.

### Limites, origines et adresse

- `TEST_ORIGIN_NOT_ALLOWED` (HTTP 409) : Le site de test n’a pas été enregistré. **Quand :** c’est déjà un site autorisé ou l’adresse même du formulaire, donc ses soumissions sont réelles. **À faire :** Retirez-le d’abord des **Sites autorisés** si vous vouliez le déplacer.
- `TEST_ORIGIN_HAS_REAL_SUBMISSIONS` (HTTP 409) : Le site de test n’a pas encore été enregistré. **Quand :** de vraies soumissions en sont venues dans les 30 derniers jours. **À faire :** Vérifiez que ce n’est pas votre site en ligne, puis confirmez. Ses soumissions n’atteindront personne.
- `FORM_CONFIG_RATE_LIMIT_TOO_HIGH` : Une limite de débit dépasse sa borne supérieure. **Quand :** une fenêtre ou un `max` de `rateLimits` est trop élevé. **À faire :** Baissez-le. Consultez [Pourriel et limites](/fr/guides/spam-protection/).
- `FORM_CONFIG_LIMIT_SCOPE_INVALID`, `FORM_CONFIG_QUOTA_PERIOD_INVALID` : Un réglage de limite n’est pas valide. **Quand :** la portée de la limite de débit ou du quota, ou la période du quota, n’existe pas. **À faire :** Utilisez une valeur prévue.
- `FORM_CONFIG_ORIGIN_INVALID` : Une origine autorisée n’est pas valide. **Quand :** elle a un chemin, elle est vide, ou elle n’est ni en `http` ni en `https`. **À faire :** Utilisez seulement l’adresse, comme `https://example.com`.
- `FORM_CONFIG_ORIGIN_WILDCARD` : Une origine autorisée utilise un caractère générique. **Quand :** elle contient `*`. **À faire :** Énumérez chaque adresse.
- `FORM_CONFIG_PRIMARY_PUBLIC_TARGET_KIND_INVALID`, `FORM_CONFIG_PRIMARY_PUBLIC_TARGET_BINDING_INVALID`, `FORM_CONFIG_PRIMARY_PUBLIC_TARGET_HOSTNAME_INVALID` : Le réglage de l’adresse publique n’est pas valide. **Quand :** un genre, une connexion ou un nom d’hôte n’a pas une valeur valide. **À faire :** Choisissez de nouveau l’adresse dans l’onglet **Publication**.
- `FORM_CONFIG_PRIMARY_PUBLIC_TARGET_HOSTNAME_NOT_FOUND` : Ce nom d’hôte n’est pas dans cet espace de travail. **Quand :** il a été retiré, ou il appartient à un autre. **À faire :** Choisissez-en un sous **Domaines**.
- `FORM_CONFIG_PRIMARY_PUBLIC_TARGET_HOSTNAME_NOT_READY` : Ce nom d’hôte n’est pas prêt. **Quand :** il n’est pas vérifié et activé. **À faire :** Terminez sa configuration sous **Domaines**.
- `FORM_CONFIG_PRIMARY_PUBLIC_TARGET_BINDING_MISMATCH` : Le nom d’hôte est connecté autrement. **Quand :** sa connexion à un espace de travail ou à un formulaire ne correspond pas. **À faire :** Vérifiez sa connexion sous **Domaines**.

### Vérification humaine

- `FORM_CONFIG_VERIFICATION_PROVIDER_INVALID`, `FORM_CONFIG_VERIFICATION_MODE_INVALID` : Le choix de vérification n’est pas valide. **Quand :** le fournisseur n’existe pas, le mode n’est ni `managed` ni `custom`, ou le mode géré n’est pas utilisé avec Turnstile. **À faire :** Choisissez de nouveau sous **Vérification humaine**.
- `FORM_CONFIG_SITE_KEY_REQUIRED`, `FORM_CONFIG_SITE_KEY_INVALID` : La clé de site est absente ou invalide. **Quand :** la vérification est activée avec vos propres clés. **À faire :** Collez la clé de site de votre fournisseur.
- `FORM_CONFIG_VERIFICATION_SECRET_REQUIRED` : La clé secrète est absente. **Quand :** la vérification personnalisée est activée. **À faire :** Collez la clé secrète de votre fournisseur.
- `FORM_CONFIG_VERIFICATION_SECRET_PLAINTEXT` : Un secret n’est pas chiffré. **Quand :** une définition le contient en texte clair. **À faire :** Entrez-le sous **Vérification humaine**, qui le chiffre.
- `FORM_CONFIG_VERIFICATION_SECRET_ENCRYPTION_UNAVAILABLE` : La clé secrète n’a pas pu être chiffrée. **Quand :** quelque chose ne va pas de notre côté. **À faire :** Écrivez-nous.
- `FORM_CONFIG_SCORE_INVALID` : **Score minimal** n’est pas valide. **Quand :** il n’est pas entre 0 et 1. **À faire :** Choisissez une valeur dans cette plage.

### Réglages de livraison

L’application écrit ces réglages pour vous à partir de l’onglet **Livraison** et de **Destinations**, et la mise à jour du
formulaire ne les accepte pas. Vous ne les verriez donc que si un formulaire conservé contient une mauvaise valeur.

- `FORM_CONFIG_PROVIDER_INVALID`, `FORM_CONFIG_PROVIDER_DUPLICATE`, `FORM_CONFIG_PROVIDER_ACCESS_INVALID`, `FORM_CONFIG_SECRET_REF_INVALID`, `FORM_CONFIG_PROVIDER_RECIPIENTS_UNSUPPORTED` : Les réglages du fournisseur de courriel du formulaire ne sont pas valides. **Quand :** un fournisseur n’est pas pris en charge ou se répète, ses réglages d’accès sont mauvais, ou il ne peut pas écrire à ces destinataires. **À faire :** Vérifiez **Destinations**, puis enregistrez de nouveau l’onglet **Livraison**.
- `FORM_CONFIG_FALLBACK_TRIGGER_INVALID`, `FORM_CONFIG_FIELD_POLICY_EMPTY`, `FORM_CONFIG_TOO_MANY_FALLBACK_PROVIDERS` : Les réglages du fournisseur de relève ne sont pas valides. **Quand :** un déclencheur n’est pas pris en charge, une politique de champs est vide, ou il y en a trop. **À faire :** Enregistrez de nouveau l’onglet **Livraison**, ou écrivez-nous.
- `FORM_CONFIG_SMTP_HOST_REQUIRED`, `FORM_CONFIG_SMTP_HOST_INVALID`, `FORM_CONFIG_SMTP_PORT_REQUIRED`, `FORM_CONFIG_SMTP_PORT_INVALID`, `FORM_CONFIG_SMTP_SECURITY_REQUIRED`, `FORM_CONFIG_SMTP_SECURITY_INVALID`, `FORM_CONFIG_SMTP_USERNAME_REQUIRED`, `FORM_CONFIG_SMTP_PASSWORD_SECRET_REQUIRED` : Un réglage SMTP est absent ou invalide. **Quand :** l’hôte n’est pas un nom d’hôte, le port n’est pas 465, 587 ou 2525, la sécurité ne convient pas au port, ou un identifiant est absent. **À faire :** Reconnectez le fournisseur sous **Destinations**.
- `FORM_CONFIG_MAILGUN_DOMAIN_REQUIRED`, `FORM_CONFIG_MAILGUN_DOMAIN_INVALID`, `FORM_CONFIG_MAILGUN_REGION_INVALID` : Un réglage Mailgun est absent ou invalide. **Quand :** le domaine d’envoi n’est pas un nom d’hôte, ou la région n’est ni `us` ni `eu`. **À faire :** Reconnectez le fournisseur sous **Destinations**.
- `FORM_CONFIG_DELIVERY_RULE_EMPTY`, `FORM_CONFIG_DELIVERY_RULE_ID_DUPLICATE`, `FORM_CONFIG_DELIVERY_RULE_RECIPIENTS_EMPTY`, `FORM_CONFIG_DELIVERY_RULE_TEMPLATES_EMPTY`, `FORM_CONFIG_TOO_MANY_DELIVERY_RULES` : Une règle de livraison n’est pas valide. **Quand :** elle ne change rien, elle répète un identifiant, une de ses listes est vide, ou il y en a trop. **À faire :** Vérifiez les règles dans l’onglet **Livraison**.
- `FORM_CONFIG_TEMPLATE_INVALID`, `FORM_CONFIG_EMAIL_TEMPLATE_HTML_UNSAFE` : Le modèle de courriel du formulaire est refusé. **Quand :** il ne peut pas être lu, ou son HTML n’est pas sûr à envoyer. **À faire :** Consultez [Modèles de notification](/fr/guides/notification-templates/).

## Publier

Ce qui peut empêcher un formulaire d’être mis en ligne, et ce dont l’onglet **Publication** vous avertit. Les blocages et les
avertissements arrivent avec un `code`, un `message` et souvent un `fix`, sous **État de préparation de la livraison**.

### Refusé

- `FORM_DELIVERY_NOT_READY` (HTTP 409) : Le formulaire a des blocages. **Quand :** vous publiez alors que les éléments ci-dessous restent. **À faire :** Réglez ce qu’énumère **État de préparation de la livraison**.
- `FORM_NOT_PUBLISHED` (HTTP 409) : Il n’y a pas encore de version publiée. **Quand :** vous réglez **Accès public** avant la première publication. **À faire :** Publiez d’abord.

### Blocages

- `FORM_CONFIG_CHOICES_REQUIRED` : Une question n’a aucun choix, donc personne ne peut y répondre. **Quand :** un champ à choix n’a pas d’`allowedValues`. **À faire :** Énumérez les choix.
- `FORM_CONFIG_CHOICE_BLANK`, `FORM_CONFIG_CHOICE_DUPLICATE` : Un choix est vide, ou figure deux fois. **Quand :** `allowedValues` en contient un. **À faire :** Corrigez la liste.
- `FORM_CONFIG_STEP_FIELD_DUPLICATE` : Un champ se trouve dans plus d’une étape. **Quand :** deux étapes l’énumèrent. **À faire :** Gardez-le dans une seule.
- `FORM_DELIVERY_SENDER_NOT_READY` : L’expéditeur choisi ne peut pas envoyer. **Quand :** il n’est pas vérifié ou actif. **À faire :** Confirmez-le sous **Expéditeurs**, ou choisissez-en un autre.
- `FORM_DELIVERY_RECIPIENTS_NOT_READY` : Aucun destinataire ne peut recevoir de courriel. **Quand :** aucun des destinataires du formulaire n’est utilisable. **À faire :** Faites-en confirmer un par courriel, ou ajoutez-en un autre sous **Livraison**.
- `FORM_CONFIG_VERIFICATION_SECRET_MISSING` : La vérification humaine n’a pas de clé secrète. **Quand :** la vérification personnalisée est activée sans clé conservée, ou les clés gérées ne sont pas disponibles. **À faire :** Entrez la clé sous **Vérification humaine**. Pour les clés gérées, écrivez-nous.
- `FORM_CONFIG_VERIFICATION_SITE_KEY_MISSING`, `FORM_CONFIG_VERIFICATION_SECRET_KEY_UNAVAILABLE`, `FORM_CONFIG_PROVIDER_BINDING_MISSING`, `FORM_CONFIG_PROVIDER_SECRET_MISSING` : Quelque chose dont ce formulaire a besoin n’est pas disponible de notre côté. **Quand :** une clé gérée, une clé de chiffrement ou l’accès à un fournisseur est introuvable. **À faire :** Reconnectez le fournisseur sous **Destinations**, si vous en utilisez un. Sinon, écrivez-nous.

### Avertissements et conseils

Aucun de ces codes ne vous empêche de publier.

- `FORM_DELIVERY_STORE_ONLY` : Les réponses seront conservées, mais pas envoyées par courriel. **Quand :** le formulaire n’a aucun destinataire. **À faire :** Ajoutez-en un sous **Livraison** si vous voulez des courriels.
- `FORM_DELIVERY_RECIPIENTS_PARTIALLY_BLOCKED` : Certains destinataires ne peuvent pas recevoir de courriel. **Quand :** au moins un est utilisable et d’autres non. **À faire :** Faites-les confirmer, ou réactivez-les.
- `FORM_DELIVERY_TEST_NOT_SENT` : Vous n’avez pas encore envoyé de test. **Quand :** la livraison est configurée sans test. **À faire :** Choisissez **Envoyer un test de livraison**.
- `FORM_DELIVERY_TEST_STALE` : Les réglages de livraison ont changé après le dernier test. **Quand :** vous les avez changés depuis. **À faire :** Envoyez un autre test.
- `FORM_DELIVERY_TEST_FAILED` : Le dernier test n’a pas réussi. **Quand :** le plus récent test a échoué. **À faire :** Corrigez la cause, puis refaites un test.
- `FORM_DEFINITION_UNKNOWN_KEYS` : Le formulaire contient des réglages qui ne font rien. **Quand :** ils datent souvent d’avant que ces clés soient refusées. **À faire :** Enregistrez de nouveau cette section sans elles.
- `FORM_PUBLISH_ORIGINS_MISSING` : Aucune adresse de site n’est indiquée. **Quand :** vous choisissez **API seulement** sans origines autorisées, donc les navigateurs refuseraient les requêtes de votre site. **À faire :** Ajoutez-la sous **Adresses de vos sites**.

### Liste de démarrage

Les étapes de démarrage de l’espace de travail peuvent renvoyer ces valeurs comme `code`.

- `SETUP_NO_FORM`, `SETUP_FORM_HAS_NO_FIELDS` : Il n’y a pas encore de formulaire à utiliser. **Quand :** l’espace de travail n’a aucun formulaire, ou il n’a aucun champ. **À faire :** Créez le formulaire, et ajoutez un champ.
- `SETUP_NOT_PUBLISHED`, `SETUP_UNPUBLISHED_CHANGES` : Le formulaire n’est pas en ligne, ou ses dernières modifications ne le sont pas. **Quand :** il n’a jamais été publié, ou le brouillon a changé. **À faire :** Publiez dans l’onglet **Publication**.
- `SETUP_NO_RESPONSES` : Aucune réponse n’est encore arrivée. **Quand :** le formulaire est nouveau. **À faire :** Envoyez-vous une réponse de test.

## Livraison

Chaque ligne sous **Livraisons** a un code de **diagnostic**, et peut aussi avoir le **code d’erreur** brut de la tentative.
Consultez [Mon courriel n’est pas arrivé](/fr/guides/troubleshooting/#mon-courriel-nest-pas-arrivé).

### Diagnostics

- `DELIVERY_QUEUED`, `DELIVERY_WAITING_FOR_ATTEMPT` : La livraison attend une tentative. **Quand :** elle n’a pas encore eu lieu. **À faire :** Rien pour l’instant.
- `DELIVERY_ATTEMPT_RECORDED` : Une tentative est notée, avec son état donné par le fournisseur. **Quand :** la ligne n’a pas de diagnostic plus précis. **À faire :** Rien, sauf si l’état indique un échec.
- `DELIVERY_ACCEPTED`, `DELIVERY_COMPLETED` : Le fournisseur a accepté le courriel. **Quand :** la tentative a réussi. **À faire :** S’il n’est pas arrivé, consultez [Livré, mais pas dans la boîte de réception](/fr/guides/troubleshooting/#livré-mais-pas-dans-la-boîte-de-réception).
- `DELIVERY_PROVIDER_UNREACHABLE_RETRYING`, `DELIVERY_PROVIDER_TEMPORARY_ERROR` : Un problème temporaire chez le fournisseur. **Quand :** une tentative a échoué et une autre aura lieu. **À faire :** Rien pour l’instant. Formerie va réessayer.
- `DELIVERY_STALLED` : Les nouvelles tentatives ont cessé après une erreur temporaire. **Quand :** ses tentatives ne se sont pas terminées. **À faire :** Ouvrez la réponse et réessayez.
- `DELIVERY_RECIPIENTS_UNAVAILABLE` : Aucun destinataire actif et vérifié. **Quand :** aucun ne peut recevoir cette réponse. **À faire :** Faites confirmer le destinataire par courriel, ou ajoutez-en un autre sous **Livraison**.
- `DELIVERY_SENDER_UNAVAILABLE` : L’expéditeur choisi n’est pas actif ou vérifié. **Quand :** au moment de l’envoi. **À faire :** Confirmez-le sous **Expéditeurs**, ou remettez **Envoyer depuis** à l’adresse par défaut de Formerie.
- `DELIVERY_CREDENTIALS_MISSING` : Il manque ses identifiants au fournisseur. **Quand :** sa clé ou son mot de passe n’est pas disponible. **À faire :** Reconnectez-le sous **Destinations**.
- `DELIVERY_PROVIDER_NOT_FOUND` : Le fournisseur configuré n’a pas pu être utilisé. **Quand :** il a été retiré ou n’est pas disponible. **À faire :** Vérifiez **Destinations** et l’onglet **Livraison**.
- `DELIVERY_PROVIDER_UNREACHABLE` : Le fournisseur n’a pas pu être joint. **Quand :** la dernière tentative a eu une panne de réseau. **À faire :** Vérifiez l’état du fournisseur, puis réessayez.
- `DELIVERY_PROVIDER_ERROR` : Le fournisseur n’a pas accepté le courriel. **Quand :** il a refusé la dernière tentative. **À faire :** Vérifiez son état et vos réglages chez lui, puis réessayez.
- `DELIVERY_FAILED` : La livraison a échoué avant que le fournisseur accepte le courriel. **Quand :** aucun diagnostic plus précis ne s’applique. **À faire :** Vérifiez l’expéditeur, les destinataires et le fournisseur, puis réessayez.

### Codes d’erreur bruts

Les mêmes échecs, tels que la tentative les a notés. Réglez-les comme le dit le diagnostic.

- `EMAIL_RECIPIENTS_UNAVAILABLE`, `EMAIL_SENDER_UNAVAILABLE`, `EMAIL_PROVIDER_NOT_FOUND` : Affichés avec le diagnostic `DELIVERY_` correspondant ci-dessus. **Quand :** les destinataires, l’expéditeur ou le fournisseur n’étaient pas utilisables au moment de l’envoi. **À faire :** Consultez ce diagnostic.
- `RESEND_API_KEY_MISSING`, `SENDGRID_API_KEY_MISSING`, `MAILGUN_API_KEY_MISSING`, `POSTMARK_TOKEN_MISSING`, `BREVO_API_KEY_MISSING`, `MAILTRAP_API_KEY_MISSING`, `MANDRILL_API_KEY_MISSING`, `SENDER_API_KEY_MISSING`, `SMTP2GO_API_KEY_MISSING` : La clé de ce fournisseur est absente. **Quand :** la tentative ne l’a pas trouvée. **À faire :** Reconnectez le fournisseur sous **Destinations**.
- `RESEND_NETWORK_ERROR`, `SENDGRID_NETWORK_ERROR`, `MAILGUN_NETWORK_ERROR`, `POSTMARK_NETWORK_ERROR`, `BREVO_NETWORK_ERROR`, `MAILTRAP_NETWORK_ERROR`, `MANDRILL_NETWORK_ERROR`, `SENDER_NETWORK_ERROR`, `SMTP2GO_NETWORK_ERROR`, `SMTP_NETWORK_ERROR` : Ce fournisseur n’a pas pu être joint. **Quand :** la requête a échoué sur le réseau. **À faire :** Vérifiez l’état du fournisseur. Formerie réessaie après un échec temporaire.
- `RESEND_SEND_FAILED`, `SENDGRID_SEND_FAILED`, `MAILGUN_SEND_FAILED`, `POSTMARK_SEND_FAILED`, `BREVO_SEND_FAILED`, `MAILTRAP_SEND_FAILED`, `MANDRILL_SEND_FAILED`, `SENDER_SEND_FAILED`, `SMTP2GO_SEND_FAILED`, `SMTP_SEND_FAILED`, `CLOUDFLARE_EMAIL_SEND_FAILED` : Le service d’envoi a refusé le courriel. **Quand :** il a répondu par une erreur. **À faire :** Vérifiez l’état du service et vos réglages chez lui, puis réessayez. Pour l’adresse par défaut de Formerie, écrivez-nous si ça se répète.
- `CLOUDFLARE_EMAIL_BINDING_NOT_CONFIGURED` : Le service d’envoi par défaut de Formerie n’est pas disponible. **Quand :** quelque chose ne va pas de notre côté. **À faire :** Écrivez-nous.
- `E_RATE_LIMIT_EXCEEDED`, `E_DELIVERY_FAILED`, `E_INTERNAL_SERVER_ERROR` : Le service d’envoi par défaut de Formerie a eu un problème temporaire. **Quand :** il signale un de ces codes, ou un autre code commençant par `E_`. **À faire :** Rien pour l’instant pour ces trois-là, car Formerie réessaie. Écrivez-nous si ça se répète.
- `MAILGUN_DOMAIN_MISSING`, `MAILGUN_REGION_INVALID` : Un réglage Mailgun est absent ou invalide au moment de l’envoi. **Quand :** le domaine d’envoi ou la région ne peut pas être utilisé. **À faire :** Reconnectez le fournisseur sous **Destinations**.
- `SENDER_UNSUPPORTED_MESSAGE` : Sender.net ne peut pas envoyer ce courriel. **Quand :** le message dépasse ce que ce fournisseur prend en charge, comme plusieurs destinataires. **À faire :** Utilisez un seul destinataire principal, ou un autre fournisseur.
- `SMTP_HOST_MISSING`, `SMTP_PORT_INVALID`, `SMTP_SECURITY_INVALID`, `SMTP_USERNAME_MISSING`, `SMTP_PASSWORD_MISSING` : Un réglage SMTP est absent ou invalide. **Quand :** la tentative ne peut pas se connecter sans lui. **À faire :** Reconnectez le fournisseur sous **Destinations**.
- `SMTP_GREETING_FAILED`, `SMTP_EHLO_FAILED`, `SMTP_STARTTLS_UNAVAILABLE`, `SMTP_STARTTLS_FAILED`, `SMTP_AUTH_FAILED` : Le serveur SMTP a refusé la connexion ou l’authentification. **Quand :** à cette étape de l’échange. **À faire :** Vérifiez l’hôte, le port, la sécurité et les identifiants avec votre fournisseur.
- `SMTP_MAIL_FROM_FAILED`, `SMTP_RCPT_TO_FAILED`, `SMTP_DATA_FAILED` : Le serveur SMTP a refusé l’expéditeur, un destinataire ou le message. **Quand :** à cette étape de l’échange. **À faire :** Vérifiez que votre fournisseur permet cet expéditeur et ce destinataire.

### Réessayer

- `DELIVERY_NOT_RETRYABLE` (HTTP 409) : Cette livraison ne peut pas être réessayée maintenant. **Quand :** seule une livraison échouée ou bloquée peut l’être, donc pas une livraison déjà livrée. **À faire :** Rien, sauf si elle a échoué pour une autre raison.
- `DELIVERY_ATTEMPT_IN_PROGRESS` (HTTP 409) : Une tentative est en cours. **Quand :** vous réessayez pendant celle-ci. **À faire :** Attendez son résultat.

### Courriels de test

- `FORM_DELIVERY_TEST_NOT_READY` (HTTP 409) : Le formulaire ne peut pas encore envoyer de test. **Quand :** un expéditeur ou un destinataire n’est pas prêt, ou il n’y a aucun destinataire. **À faire :** Suivez **État de préparation de la livraison**.
- `FORM_DELIVERY_TEST_NO_RECIPIENTS` (HTTP 409) : Les réponses d’exemple ne correspondent à aucun destinataire. **Quand :** les conditions des destinataires les excluent tous. **À faire :** Changez les réponses d’exemple sous **Aperçu**, ou révisez les conditions.
- `FORM_DELIVERY_TEST_RATE_LIMITED` (HTTP 429) : Les tests partent trop vite. **Quand :** vous en envoyez plus d’un par minute. **À faire :** Attendez une minute.
- `FORM_DELIVERY_TEST_PAYLOAD_TOO_LARGE` (HTTP 413) : Les réponses d’exemple sont trop grosses. **Quand :** elles dépassent 64 Ko. **À faire :** Raccourcissez-les.
- `FORM_DELIVERY_TEST_SEND_FAILED` (HTTP 502) : Le fournisseur n’a pas pu confirmer le test. **Quand :** il a refusé le courriel ou n’a pas répondu. **À faire :** Vérifiez l’expéditeur et le fournisseur, et si le destinataire l’a reçu, puis réessayez.
- `FORM_DELIVERY_TEST_RESULT_NOT_RECORDED` (HTTP 500) : Le résultat du test n’a pas pu être enregistré. **Quand :** quelque chose a échoué de notre côté. **À faire :** Vérifiez la boîte de réception du destinataire, puis réessayez.

## Se connecter

Votre compte, vos méthodes de connexion et votre session.

- `UNAUTHORIZED` (HTTP 401) : Vous n’êtes pas connecté, ou les identifiants n’ont pas fonctionné. **Quand :** une session a expiré, ou un mot de passe, un lien ou une clé d’accès est erroné ou expiré. **À faire :** Connectez-vous de nouveau, ou demandez un nouveau lien.
- `AUTH_RATE_LIMITED` (HTTP 429) : Trop de tentatives ou de changements au compte. **Quand :** en peu de temps. **À faire :** Attendez le temps indiqué dans `message`.
- `AUTH_RECENT_AUTH_REQUIRED` (HTTP 403) : Ce changement demande une connexion récente. **Quand :** vous changez un élément sensible longtemps après vous être connecté. **À faire :** Connectez-vous de nouveau, puis recommencez.
- `AUTH_SIGNUP_PASSWORD_REQUIRED` (HTTP 409) : Cette inscription a défini un mot de passe. **Quand :** vous confirmez le lien reçu par courriel sans lui. **À faire :** Entrez le mot de passe choisi à l’inscription, ou continuez sans.
- `AUTH_SIGNUP_PASSWORD_INCORRECT` (HTTP 401) : Ce n’est pas le mot de passe choisi à l’inscription. **Quand :** vous confirmez le lien reçu par courriel avec un autre. **À faire :** Entrez le bon, ou continuez sans mot de passe.
- `AUTH_EMAIL_IN_USE` (HTTP 409) : Un autre compte utilise ce courriel. **Quand :** vous changez votre adresse pour celle-là. **À faire :** Utilisez une autre adresse, ou connectez-vous à ce compte.
- `AUTH_IDENTITY_NOT_FOUND` (HTTP 404) : Cette méthode de connexion n’est pas connectée. **Quand :** vous retirez un mot de passe, une clé d’accès ou un fournisseur que vous n’avez pas. **À faire :** Rechargez **Connexion et sécurité**.
- `AUTH_LAST_ACCESS_METHOD` (HTTP 409) : C’est votre seule façon de vous connecter. **Quand :** vous retirez votre dernier mot de passe, clé d’accès ou fournisseur. **À faire :** Ajoutez-en une autre d’abord.
- `AUTH_ACCOUNT_DELETE_BLOCKED` (HTTP 409) : Votre compte possède encore des éléments qui demandent une décision. **Quand :** vous supprimez un compte avec des espaces de travail ou des formulaires à régler. **À faire :** Réglez ceux qui sont énumérés. Consultez [Supprimer vos données](/fr/guides/delete-your-data/).
- `AUTH_MFA_INVALID` (HTTP 401) : Le code d’authentification ou de récupération est erroné. **Quand :** à la connexion ou lors d’un changement de sécurité. **À faire :** Entrez un code valide.
- `AUTH_MFA_NOT_ENABLED` (HTTP 409) : La vérification par application n’est pas activée. **Quand :** vous utilisez un code sans elle. **À faire :** Activez-la d’abord.
- `AUTH_MFA_SETUP_REQUIRED` (HTTP 404) : La configuration de l’application d’authentification est introuvable. **Quand :** vous confirmez une configuration jamais commencée ou expirée. **À faire :** Recommencez.
- `AUTH_MFA_CURRENT_FACTOR_REQUIRED` (HTTP 403) : Remplacer votre application d’authentification demande une preuve. **Quand :** vous en configurez une nouvelle. **À faire :** Entrez un code de l’application actuelle, ou un code de récupération.
- `AUTH_MFA_SECRET_UNAVAILABLE` (HTTP 500) : La vérification par application est temporairement indisponible. **Quand :** quelque chose ne va pas de notre côté. **À faire :** Réessayez plus tard, et écrivez-nous avec la **Référence** si ça se répète.

### Connexion avec un fournisseur

Après Google, Apple ou GitHub, vous revenez à l’application avec une de ces valeurs en minuscules comme `error` dans l’adresse. Ce ne
sont pas des erreurs HTTP. L’application affiche un message pour elles.

- `oauth_failed` : Le fournisseur a signalé un échec. **Quand :** vous avez annulé, ou il a renvoyé une erreur. **À faire :** Réessayez.
- `bad_callback` : La réponse du fournisseur est incomplète. **Quand :** il manque ce dont Formerie a besoin. **À faire :** Réessayez à partir de la page de connexion.
- `invalid_state` : La tentative de connexion a expiré. **Quand :** elle a pris trop de temps, ou s’est terminée dans un autre navigateur. **À faire :** Recommencez à partir de la page de connexion.
- `provider_rejected` : Le fournisseur a refusé l’échange. **Quand :** après votre approbation. **À faire :** Réessayez, ou utilisez une autre méthode.
- `provider_not_configured` : Ce fournisseur n’est pas disponible. **Quand :** il n’est pas configuré. **À faire :** Utilisez une autre méthode.
- `account_disabled` : Ce compte est désactivé. **Quand :** à la connexion. **À faire :** Écrivez-nous.
- `user_not_found` : Le compte est introuvable. **Quand :** pendant qu’un fournisseur y est connecté. **À faire :** Connectez-vous de nouveau.
- `provider_email_required` : Le fournisseur n’a donné aucun courriel vérifié. **Quand :** le compte chez lui n’en a pas. **À faire :** Vérifiez le courriel auprès du fournisseur, ou utilisez une autre méthode.
- `provider_email_in_use` : Un autre compte utilise le courriel de ce fournisseur. **Quand :** vous connectez un fournisseur. **À faire :** Utilisez un autre compte chez le fournisseur, ou connectez-vous à ce compte.
- `provider_in_use` : Ce compte chez le fournisseur est connecté à un autre compte. **Quand :** vous le connectez. **À faire :** Déconnectez-le d’abord de l’autre compte.
- `provider_slot_in_use` : Vous avez déjà connecté un compte de ce fournisseur. **Quand :** vous en connectez un autre. **À faire :** Déconnectez d’abord celui qui existe.

## Gérer votre espace de travail

Les espaces de travail, les personnes, les domaines, les destinataires, les expéditeurs, les fournisseurs et les modèles dans l’application.

### Espaces de travail, formulaires et réponses

- `WORKSPACE_NOT_FOUND` (HTTP 404) : L’espace de travail n’existe pas, ou vous ne pouvez pas le voir. **Quand :** un mauvais identifiant, ou un accès perdu. **À faire :** Vérifiez l’adresse, ou demandez à un propriétaire.
- `WORKSPACE_HANDLE_CONFLICT` (HTTP 409) : Cet identifiant public est déjà pris. **Quand :** vous créez ou renommez un espace de travail. **À faire :** Choisissez-en un autre.
- `WORKSPACE_ID_CONFLICT` (HTTP 409) : Un espace de travail a déjà cet identifiant. **Quand :** vous en créez un avec un identifiant déjà utilisé. **À faire :** Réessayez avec un autre identifiant public.
- `WORKSPACE_HAS_FORMS`, `WORKSPACE_HAS_MEMBERS` (HTTP 409) : L’espace de travail ne peut pas encore être supprimé définitivement. **Quand :** il a encore des formulaires ou d’autres membres. **À faire :** Retirez-les d’abord.
- `WORKSPACE_NOT_DELETED` (HTTP 409) : Il n’est pas à la corbeille. **Quand :** vous le supprimez définitivement directement. **À faire :** Mettez-le d’abord à la corbeille.
- `FORM_HANDLE_CONFLICT` (HTTP 409) : Cet identifiant est déjà pris dans cet espace de travail. **Quand :** vous créez ou renommez un formulaire. **À faire :** Choisissez-en un autre.
- `FORM_HAS_SUBMISSIONS` (HTTP 409) : Le formulaire ne peut pas encore être supprimé définitivement. **Quand :** il a encore des soumissions. **À faire :** Supprimez-les d’abord. Consultez [Supprimer vos données](/fr/guides/delete-your-data/).
- `FORM_NOT_DELETED` (HTTP 409) : Il n’est pas à la corbeille. **Quand :** vous le supprimez définitivement directement. **À faire :** Mettez-le d’abord à la corbeille.
- `SUBMISSION_NOT_FOUND` (HTTP 404) : La réponse n’existe pas, ou vous ne pouvez pas la voir. **Quand :** elle a été supprimée, ou l’identifiant est erroné. **À faire :** Ouvrez-la à partir de **Soumissions**.

### Membres et invitations

- `MEMBERSHIP_NOT_FOUND` (HTTP 404) : Ce membre est introuvable. **Quand :** il a été retiré. **À faire :** Rechargez la liste.
- `WORKSPACE_MEMBER_CONFLICT`, `FORM_MEMBER_CONFLICT` (HTTP 409) : Ce courriel a déjà accès. **Quand :** vous l’ajoutez ou l’invitez. **À faire :** Changez plutôt son accès actuel.
- `FORM_MEMBER_NOT_FOUND` (HTTP 404) : Ce membre du formulaire est introuvable. **Quand :** il a été retiré. **À faire :** Rechargez la liste.
- `WORKSPACE_LAST_OWNER` (HTTP 409) : Un espace de travail doit garder un propriétaire actif. **Quand :** vous retirez ou rétrogradez le dernier. **À faire :** Nommez d’abord quelqu’un d’autre propriétaire.
- `WORKSPACE_SELF_OWNER` (HTTP 409) : Vous ne pouvez pas changer votre propre accès de propriétaire. **Quand :** vous essayez de le faire sur vous-même. **À faire :** Demandez à un autre propriétaire actif.
- `WORKSPACE_INVITATION_CONFLICT`, `FORM_INVITATION_CONFLICT` (HTTP 409) : Ce courriel a déjà une invitation en attente. **Quand :** vous l’invitez de nouveau. **À faire :** Renvoyez celle qui existe.
- `WORKSPACE_INVITATION_NOT_FOUND`, `FORM_INVITATION_NOT_FOUND` (HTTP 404) : Cette invitation est introuvable. **Quand :** elle a été retirée ou déjà utilisée. **À faire :** Rechargez, ou envoyez-en une nouvelle.
- `WORKSPACE_INVITATION_INVALID` (HTTP 400) : Le lien d’invitation est invalide ou expiré. **Quand :** vous ouvrez un ancien lien. **À faire :** Demandez une nouvelle invitation.
- `WORKSPACE_INVITATION_MEMBERSHIP_DISABLED`, `FORM_INVITATION_MEMBERSHIP_DISABLED` (HTTP 403) : Votre accès à cet espace de travail a été désactivé. **Quand :** vous acceptez une invitation. **À faire :** Demandez à un administrateur de l’espace de le rétablir.
- `INVITATION_EMAIL_MISMATCH` (HTTP 403) : L’invitation a été envoyée à une autre adresse. **Quand :** vous êtes connecté avec un autre courriel. **À faire :** Connectez-vous avec cette adresse.

### Domaines

- `DOMAIN_NOT_FOUND`, `DOMAIN_OWNERSHIP_NOT_FOUND` (HTTP 404) : Le domaine est introuvable. **Quand :** il a été retiré, ou il n’est pas dans cet espace de travail. **À faire :** Rechargez **Domaines**.
- `DOMAIN_NOT_VERIFIED` (HTTP 409) : Le domaine n’est pas encore vérifié. **Quand :** vous l’activez d’abord. **À faire :** Terminez les étapes DNS, et choisissez **Vérifier le DNS**.
- `DOMAIN_HOSTNAME_RESERVED` (HTTP 400) : Formerie réserve ce nom d’hôte. **Quand :** vous l’ajoutez. **À faire :** Utilisez-en un autre.
- `DOMAIN_HOSTNAME_CONFLICT` (HTTP 409) : Ce nom d’hôte est déjà connecté à un espace de travail. **Quand :** vous l’ajoutez de nouveau. **À faire :** Retirez-le d’abord de cet espace.
- `DOMAIN_OWNED_BY_OTHER_WORKSPACE` (HTTP 409) : Un autre espace de travail a vérifié le domaine au-dessus de ce nom d’hôte. **Quand :** vous l’ajoutez. **À faire :** Ajoutez-le à partir de cet espace.
- `DOMAIN_OWNERSHIP_CONFLICT` (HTTP 409) : Ce domaine est déjà vérifié dans l’espace de travail. **Quand :** vous l’ajoutez de nouveau. **À faire :** Utilisez celui qui existe.
- `DOMAIN_OWNERSHIP_SCOPE_MISMATCH` (HTTP 409) : Le nom d’hôte n’est pas sous le domaine choisi. **Quand :** ils ne correspondent pas. **À faire :** Choisissez le domaine vérifié correspondant.
- `DOMAIN_ROUTE_CONFLICT` (HTTP 409) : Un autre formulaire utilise ce nom d’hôte et ce chemin. **Quand :** vous connectez un formulaire. **À faire :** Choisissez un autre chemin.
- `DOMAIN_HAS_ROUTES`, `DOMAIN_OWNERSHIP_HAS_ROUTES` (HTTP 409) : Le domaine a encore des routes de formulaires. **Quand :** vous le supprimez définitivement. **À faire :** Retirez d’abord les routes.
- `DOMAIN_NOT_DELETED`, `DOMAIN_OWNERSHIP_NOT_DELETED` (HTTP 409) : Il n’est pas à la corbeille. **Quand :** vous le supprimez définitivement directement. **À faire :** Mettez-le d’abord à la corbeille.
- `HOSTNAME_BINDING_CONFLICT` (HTTP 409) : Un autre sous-domaine utilise cette connexion. **Quand :** vous connectez un formulaire ou un espace de travail. **À faire :** Choisissez-en une autre.
- `HOSTNAME_BINDING_FORM_NOT_FOUND` (HTTP 404) : Ce formulaire n’est pas dans cet espace de travail. **Quand :** vous y connectez un nom d’hôte. **À faire :** Choisissez un formulaire de cet espace.
- `CLOUDFLARE_CUSTOM_HOSTNAME_FAILED` (HTTP 502) : Le nom d’hôte personnalisé n’a pas pu être configuré. **Quand :** notre fournisseur d’hébergement a refusé ou échoué. **À faire :** Réessayez, et écrivez-nous avec la **Référence** si ça se répète.

### Destinataires

- `RECIPIENT_NOT_FOUND` (HTTP 404) : Le destinataire est introuvable. **Quand :** il a été retiré. **À faire :** Rechargez **Destinataires**.
- `RECIPIENT_CONFLICT` (HTTP 409) : Ce destinataire existe déjà dans l’espace de travail. **Quand :** vous l’ajoutez de nouveau. **À faire :** Utilisez celui qui existe.
- `RECIPIENT_NOT_VERIFIED` (HTTP 409) : Vérifiez avant d’activer. **Quand :** vous en activez un qui n’a pas confirmé. **À faire :** Faites-le confirmer par courriel.
- `RECIPIENT_NOT_VERIFIABLE` (HTTP 409) : Ce destinataire ne peut pas recevoir de courriel de vérification. **Quand :** son état ne le permet pas. **À faire :** Vérifiez son état sous **Destinataires**.
- `RECIPIENT_HAS_FORMS` (HTTP 409) : Des formulaires utilisent encore ce destinataire. **Quand :** vous le supprimez définitivement. **À faire :** Retirez-le d’abord de ces formulaires.
- `RECIPIENT_NOT_DELETED` (HTTP 409) : Il n’est pas à la corbeille. **Quand :** vous le supprimez définitivement directement. **À faire :** Mettez-le d’abord à la corbeille.

### Expéditeurs

- `SENDER_NOT_FOUND` (HTTP 404) : L’expéditeur est introuvable. **Quand :** il a été retiré. **À faire :** Rechargez **Expéditeurs**.
- `SENDER_CONFLICT` (HTTP 409) : Cet expéditeur existe déjà dans l’espace de travail. **Quand :** vous l’ajoutez de nouveau. **À faire :** Utilisez celui qui existe.
- `SENDER_NOT_VERIFIED` (HTTP 409) : Vérifiez avant d’activer. **Quand :** vous en activez un qui n’a pas confirmé. **À faire :** Confirmez-le par courriel.
- `SENDER_NOT_VERIFIABLE` (HTTP 409) : Cet expéditeur ne peut pas recevoir de courriel de vérification. **Quand :** son état ne le permet pas. **À faire :** Vérifiez son état sous **Expéditeurs**.
- `SENDER_HAS_FORMS` (HTTP 409) : Des formulaires utilisent encore cet expéditeur. **Quand :** vous le supprimez définitivement. **À faire :** Choisissez d’abord un autre expéditeur sur ces formulaires.
- `SENDER_NOT_DELETED` (HTTP 409) : Il n’est pas à la corbeille. **Quand :** vous le supprimez définitivement directement. **À faire :** Mettez-le d’abord à la corbeille.

### Fournisseurs de courriel

- `PROVIDER_CONNECTION_NOT_FOUND` (HTTP 404) : Cette connexion à un fournisseur est introuvable. **Quand :** elle a été retirée. **À faire :** Rechargez **Destinations**.
- `PROVIDER_CONNECTION_REQUIRED` (HTTP 400) : Un expéditeur a besoin d’un fournisseur ici. **Quand :** vous enregistrez un expéditeur sans en choisir un. **À faire :** Choisissez un fournisseur de courriel.
- `PROVIDER_CONNECTION_CONFLICT` (HTTP 409) : Cette connexion à un fournisseur existe déjà. **Quand :** vous l’ajoutez de nouveau. **À faire :** Utilisez celle qui existe.
- `PROVIDER_CONNECTION_NOT_DELETED` (HTTP 409) : Elle n’est pas à la corbeille. **Quand :** vous la supprimez définitivement directement. **À faire :** Mettez-la d’abord à la corbeille.
- `PROVIDER_CREDENTIAL_KEY_UNAVAILABLE` (HTTP 500) : Les identifiants n’ont pas pu être chiffrés. **Quand :** vous enregistrez un fournisseur ou une application d’authentification, et quelque chose ne va pas de notre côté. **À faire :** Réessayez plus tard, et écrivez-nous avec la **Référence**.

### Modèles de courriel

`TEMPLATE_INVALID` énumère ce qui ne va pas dans `error.issues`, chacun avec un des codes qui suivent. Consultez [Modèles de notification](/fr/guides/notification-templates/).

- `TEMPLATE_NOT_FOUND` (HTTP 404) : Le modèle est introuvable. **Quand :** il a été retiré. **À faire :** Rechargez la liste.
- `TEMPLATE_INVALID` (HTTP 422) : Le modèle ne peut pas être enregistré. **Quand :** il a des problèmes de syntaxe ou de HTML. **À faire :** Lisez `error.issues`.
- `TEMPLATE_TAG_UNCLOSED`, `TEMPLATE_TAG_EMPTY` : Une balise `{{ }}` est brisée. **Quand :** elle n’est jamais fermée, ou elle est vide. **À faire :** Fermez-la, ou remplissez-la.
- `TEMPLATE_EXPRESSION_INVALID` : L’expression d’une balise ne peut pas être lue. **Quand :** un chemin ou sa syntaxe est erroné. **À faire :** Corrigez la balise.
- `TEMPLATE_FILTER_INVALID` : Une balise utilise un filtre qui n’existe pas. **Quand :** il est mal écrit ou non pris en charge. **À faire :** Utilisez un filtre prévu.
- `TEMPLATE_STRING_UNTERMINATED` : Une valeur entre guillemets ne se termine jamais dans une balise. **Quand :** il manque le guillemet fermant. **À faire :** Ajoutez-le.
- `TEMPLATE_HTML_UNSAFE` : Le HTML contient quelque chose qui n’est pas sûr à envoyer. **Quand :** il contient ce que le filtre HTML refuse. **À faire :** Retirez ce que nomme `message`.
- `FORM_CONFIG_RECEIPT_PUBLIC_INPUT_VARIABLE` : Un accusé de réception ne peut pas répéter ce qui a été soumis. **Quand :** le modèle utilise une réponse soumise ou un résumé de la soumission. **À faire :** Retirez cette variable. Consultez [Modèles de notification](/fr/guides/notification-templates/).

## Forfaits et limites

Consultez [Forfaits et limites](/fr/guides/plans-and-limits/) pour ce que chaque forfait comprend, et ce qui n’est pas appliqué.

- `PLAN_LIMIT_ACTIVE_FORMS_REACHED`, `PLAN_LIMIT_RECIPIENTS_REACHED`, `PLAN_LIMIT_MEMBERS_REACHED`, `PLAN_LIMIT_PROVIDER_CONNECTIONS_REACHED`, `PLAN_LIMIT_RUNTIME_HOSTNAMES_REACHED` (HTTP 409) : L’espace de travail a atteint la limite de son forfait. **Quand :** vous en ajoutez ou en activez un de plus. `error.details` donne les chiffres, et rien de ce qui est déjà enregistré ne change. **À faire :** Retirez-en un que vous n’utilisez pas, ou passez à un forfait supérieur.
- `PLAN_SUBSCRIPTION_INACTIVE` (HTTP 409) : Le forfait de l’espace de travail n’est pas actif. **Quand :** il a pris fin ou n’est pas en cours. **À faire :** Vérifiez le forfait sous **Paramètres**, ou écrivez-nous.
- `PLAN_ENTITLEMENT_UNAVAILABLE` (HTTP 503) : Les renseignements sur le forfait n’ont pas pu être lus. **Quand :** un problème temporaire de notre côté. **À faire :** Réessayez sous peu.
- `ACCOUNT_STORAGE_HOLD` (HTTP 403) : Les formulaires du compte ont suspendu les nouvelles soumissions. **Quand :** le compte conserve beaucoup plus qu’un usage normal. Tout ce qui a déjà été reçu est en sécurité. **À faire :** [Écrivez-nous](https://formerie.com/fr/contact/).
- `EMAIL_CEILING_REACHED` : La réponse est conservée, mais pas envoyée par courriel. **Quand :** le compte a atteint son plafond mensuel de courriels envoyés par Formerie. Le code s’affiche sur la tentative de livraison. **À faire :** Réessayez à partir du 1er du mois suivant, ou écrivez-nous.

## IA et MCP (Bientôt)

Les fonctions d’IA intégrées à Formerie et l’accès MCP ne sont pas offerts aujourd’hui. Ces codes sont ici pour que la liste soit complète, et ils peuvent changer avant la sortie. Utiliser votre propre agent de programmation, c’est autre chose : consultez [Utiliser votre IA](/fr/guides/quickstart-ai/).

### Utiliser l’IA

- `AI_NOT_CONFIGURED` (HTTP 503) : Les fonctions d’IA ne sont pas disponibles pour l’instant. **Quand :** l’IA n’est pas configurée pour cette requête. **À faire :** Continuez sans elle.
- `AI_PAUSED` (HTTP 503) : L’IA prend une courte pause. **Quand :** l’utilisation de l’IA est suspendue pour l’instant. Tout ce que vous avez créé fonctionne encore. **À faire :** Réessayez plus tard.
- `AI_LIMIT_REACHED` (HTTP 429) : L’IA de ce mois-ci a été utilisée. **Quand :** l’allocation est épuisée. **À faire :** Attendez le 1er.
- `AI_PROVIDER_UNAVAILABLE` (HTTP 503) : Le service d’IA n’est pas disponible. **Quand :** il ne peut pas être joint. **À faire :** Réessayez dans un moment.
- `AI_TIMEOUT` (HTTP 504) : Le service d’IA a pris trop de temps. **Quand :** il n’a pas répondu à temps. **À faire :** Réessayez.
- `AI_OUTPUT_INVALID` (HTTP 422) : Le résultat de l’IA n’a pas pu être utilisé. **Quand :** ce n’était pas une réponse valide. **À faire :** Reformulez votre demande.
- `AI_REQUEST_REFUSED` (HTTP 422) : Le service d’IA a refusé. **Quand :** il a décliné cette demande. **À faire :** Reformulez votre demande.
- `AI_GENERATION_NOT_FOUND` (HTTP 404) : Ce résultat d’IA est introuvable. **Quand :** il a expiré ou a déjà été utilisé. **À faire :** Générez-le de nouveau.

### Suggestions de l’IA

Ce sont des avertissements sur un brouillon ou une règle, à réviser. Ils n’arrêtent rien.

- `AI_RECIPIENTS_NOT_SET` : Le brouillon n’a aucun destinataire. **Quand :** le formulaire a été rédigé sans en avoir. **À faire :** Ajoutez-en un sous **Livraison**.
- `AI_SENSITIVE_FIELD_REMOVED` : Un champ sensible a été laissé de côté. **Quand :** l’IA en a proposé un, et Formerie ne l’a pas ajouté. **À faire :** Vérifiez les champs du formulaire.
- `AI_RULE_REMOVED` : Une règle proposée a été laissée de côté. **Quand :** elle dépendait d’un champ laissé de côté. **À faire :** Ajoutez-la vous-même au besoin.
- `AI_RULE_REPLACES_EXISTING` : Cette règle en remplacerait une autre. **Quand :** le champ a déjà une règle de visibilité. **À faire :** Révisez avant d’appliquer.
- `AI_NO_SAMPLES`, `AI_SAMPLE_MISMATCH` : Les exemples de la règle ne la confirment pas. **Quand :** il n’y en a aucun, ou l’un d’eux donne un autre résultat que prévu. **À faire :** Testez la règle avant de l’appliquer.

### Routage intelligent

- `AI_ROUTING_INVALID` (HTTP 400) : Les réglages de routage ne sont pas valides. **Quand :** vous les enregistrez. **À faire :** Vérifiez les routes.
- `AI_ROUTING_NOT_CONFIGURED` (HTTP 409) : Ce formulaire n’a pas de routage. **Quand :** vous agissez sur une réponse. **À faire :** Configurez-le d’abord.
- `AI_ROUTING_CONFLICT` (HTTP 409) : Le routage a changé depuis son chargement. **Quand :** quelqu’un a enregistré avant vous. **À faire :** Rechargez et réessayez.
- `AI_ROUTING_DELIVERY_NOT_CONFIGURED` (HTTP 409) : Le routage a besoin d’un destinataire. **Quand :** vous l’activez sans en avoir. **À faire :** Ajoutez un destinataire au formulaire.
- `AI_ROUTING_NOT_ACTIONABLE` (HTTP 409) : Cette réponse ne peut pas être changée maintenant. **Quand :** elle n’attend plus de décision. **À faire :** Rechargez-la.
- `AI_ROUTING_RECIPIENT_UNAVAILABLE` (HTTP 422) : Une route utilise un destinataire non vérifié. **Quand :** vous l’enregistrez. **À faire :** Vérifiez le destinataire, ou choisissez-en un autre.
- `AI_ROUTE_NOT_FOUND` (HTTP 422) : Cette route n’est pas dans le routage de ce formulaire. **Quand :** vous en choisissez une qui a été retirée. **À faire :** Rechargez les routes.
- `NO_TEXT`, `ROUTE_NO_MATCH`, `ROUTE_NOT_LISTED`, `ROUTE_LOW_CONFIDENCE`, `ROUTE_UNAVAILABLE`, `SPAM_LOW_CONFIDENCE`, `AI_INTERRUPTED` : Pourquoi une réponse est allée à la route de relève, comme son `reasonCode`. **Quand :** il n’y avait rien à lire, aucune correspondance claire, la route n’était pas utilisable, ou la vérification a été interrompue. **À faire :** Révisez la réponse, et ajustez les routes si ça se répète.

### MCP et clés d’API

- `AI_CREDENTIAL_INVALID` (HTTP 401) : La connexion n’est plus valide. **Quand :** elle a été révoquée ou a expiré. **À faire :** Connectez-vous de nouveau.
- `AI_SCOPE_DENIED` (HTTP 403) : Il manque une permission à la connexion. **Quand :** un outil a besoin de ce que nomme `requiredScope`. **À faire :** Accordez-la, puis connectez-vous de nouveau.
- `AI_ROUTE_NOT_ALLOWED` (HTTP 403) : Les connexions d’IA ne peuvent pas faire ceci. **Quand :** une opération est réservée à l’application. **À faire :** Faites-la dans l’application.
- `AI_CREDENTIAL_APP_ONLY` (HTTP 400) : Les identifiants ne peuvent pas être réglés par un outil d’IA. **Quand :** un appel d’outil contient un secret. **À faire :** Entrez-le dans l’application.
- `AI_WORKSPACE_REQUIRED` (HTTP 400) : La connexion couvre plusieurs espaces de travail. **Quand :** un appel n’en nomme aucun. **À faire :** Passez `workspaceUid`.
- `AI_RATE_LIMITED` (HTTP 429) : Trop de requêtes de cette connexion. **Quand :** en peu de temps. **À faire :** Patientez, puis réessayez.
- `AI_CONFIRMATION_INVALID` (HTTP 409) : La confirmation ne peut pas être utilisée. **Quand :** elle a expiré, elle a déjà servi, ou elle visait d’autres arguments. **À faire :** Recommencez, et demandez à la personne.
- `AI_CONFIRMATION_UNAVAILABLE` (HTTP 403) : Cette action demande l’approbation d’une personne, et ce client ne peut pas la demander. **Quand :** un outil à fort impact s’exécute dans ce client. **À faire :** Faites-la dans l’application, ou utilisez un client qui peut demander.
- `AUDIT_UNAVAILABLE` (HTTP 503) : L’action n’a pas été faite parce qu’elle n’a pas pu être consignée. **Quand :** un problème temporaire de notre côté. **À faire :** Réessayez sous peu.
- `AI_CONSENT_NOT_FOUND` (HTTP 404) : La demande d’autorisation est introuvable. **Quand :** elle a expiré ou a déjà servi. **À faire :** Recommencez à partir de l’application.
- `AI_GRANT_NOT_FOUND` (HTTP 404) : Cette connexion d’IA est introuvable. **Quand :** elle a été retirée. **À faire :** Rechargez la liste.
- `AI_API_KEY_NOT_FOUND` (HTTP 404) : Cette clé d’API est introuvable. **Quand :** elle a été retirée. **À faire :** Rechargez la liste.
- `AI_API_KEY_LIMIT_REACHED` (HTTP 409) : Vous avez trop de clés d’API. **Quand :** vous en créez une de plus. **À faire :** Révoquez-en une d’abord.

## SDK

`@formerie/client` ajoute ses propres codes pour ce qui n’a jamais atteint Formerie. Il peut aussi renvoyer certains codes du serveur
sans faire de requête : une étape de vérification échouée donne `TURNSTILE_FAILED`, un 429 qui n’est pas en JSON donne `RATE_LIMITED`,
et un formulaire lié sans cible, ou soumis deux fois en même temps, donne `BAD_REQUEST`.

- `NETWORK_ERROR` : La requête ne s’est jamais terminée. **Quand :** le réseau a échoué, ou le navigateur l’a bloquée, souvent à cause de CORS. **À faire :** Consultez [Une erreur CORS ou d’origine](/fr/guides/troubleshooting/#une-erreur-cors-ou-dorigine), et laissez le visiteur réessayer.
- `INVALID_RESPONSE` : La réponse ne venait pas de Formerie. **Quand :** quelque chose entre vous et Formerie a répondu à sa place, ou l’adresse est erronée. **À faire :** Vérifiez le point de terminaison, puis regardez la réponse dans l’onglet Réseau du navigateur.

### Charger le script

À partir de `cdn.formerie.com`.

- `ASSET_NOT_FOUND` (HTTP 404) : Ce fichier n’existe pas. **Quand :** le chemin ou la version est erroné. **À faire :** Copiez l’adresse de votre **Code d’intégration**, ou du [guide du SDK](/fr/guides/javascript-sdk/).
- `METHOD_NOT_ALLOWED` (HTTP 405) : Le CDN ne fait que lire. **Quand :** une requête n’est pas `GET`, `HEAD` ou `OPTIONS`. **À faire :** Utilisez `GET`.

## Toute requête

Ces codes peuvent venir de n’importe quelle route.

- `BAD_REQUEST` (HTTP 400, 404, 409, 413) : La requête n’a pas pu être traitée. **Quand :** une valeur est invalide (400), la route n’existe pas (404), une clé d’accès est déjà connectée (409) ou un corps est trop gros (413). `message` précise lequel. **À faire :** Corrigez la requête. Une soumission doit envoyer `{ "fields": { ... } }` sous 100 000 octets.
- `INVALID_JSON` (HTTP 400) : Le corps n’est pas du JSON valide. **Quand :** il ne peut pas être lu. **À faire :** Corrigez ce que votre code envoie.
- `FORBIDDEN` (HTTP 403) : Vous n’avez pas accès. **Quand :** votre rôle ne le permet pas. **À faire :** Demandez à un propriétaire ou à un administrateur de l’espace. Consultez [Équipe et accès](/fr/guides/team-and-access/).
- `INTERNAL_ERROR` (HTTP 500) : Quelque chose a mal tourné de notre côté. **Quand :** un échec inattendu. **À faire :** Réessayez sous peu, et écrivez-nous avec la **Référence** si ça se répète.
