Aller au contenu principal

Erreurs de l’API

Chaque erreur de l’API fremforge est au format application/problem+json de la RFC 9457 et porte une URI type qui désigne l’erreur précise :

{
  "type": "https://docs.frem.sh/reference/api/errors/seat-cap-reached",
  "title": "Seat cap reached",
  "status": 409,
  "detail": "Your org has 10 of 10 contracted seats in use. Buy more seats from the billing page before provisioning new users."
}

Basez votre logique sur type. title et detail sont destinés à être lus par un humain et peuvent être reformulés ; type et status forment le contrat stable.

Les tableaux ci-dessous listent 259 types d’erreur.

400 Bad Request

La requête est mal formée, ou un champ n’a pas passé la validation.

Type d’erreur
confirm-mismatchConfirmation non concordante
create-failedÉchec de la création
css-too-largeCSS trop volumineux
digest-mismatchDigest non concordant
empty-updateMise à jour vide
format-mismatchFormat non concordant
group-team-map-foreign-orgLa correspondance groupe-équipe désigne une autre organisation
group-team-map-unknown-teamLa correspondance groupe-équipe désigne une équipe inexistante
ids-requiredIdentifiants requis
invalid-accessAccès invalide
invalid-allowed-audiencesAudiences autorisées invalides
invalid-allowlistListe d’autorisation invalide
invalid-api-keyClé d’API invalide
invalid-artifact-nameNom d’artefact invalide
invalid-artifact-versionVersion d’artefact invalide
invalid-attestation-formatFormat d’attestation invalide
invalid-audiencesAudiences invalides
invalid-azure-deploymentDéploiement Azure invalide
invalid-base-urlURL de base invalide
invalid-billing-emailsAdresses e-mail de facturation invalides
invalid-block-actionAction de blocage invalide
invalid-block-severitySévérité de blocage invalide
invalid-bodyCorps de requête invalide
invalid-ca-keysClés d’AC invalides
invalid-cidrCIDR invalide
invalid-client-idIdentifiant client invalide
invalid-commit-shaSHA de commit invalide
invalid-contentContenu invalide
invalid-cssCSS invalide
invalid-cursorCurseur invalide
invalid-daysNombre de jours invalide
invalid-digestDigest invalide
invalid-domainDomaine invalide
invalid-emailAdresse e-mail invalide
invalid-enabledValeur enabled invalide
invalid-environmentEnvironnement invalide
invalid-expected-current-seat-capPlafond d’utilisateurs actuel attendu invalide
invalid-expires-atDate d’expiration invalide
invalid-featureFonctionnalité invalide
invalid-fieldChamp invalide
invalid-formatFormat invalide
invalid-gatesContrôles invalides
invalid-git-refRéférence Git invalide
invalid-group-team-mapCorrespondance groupe-équipe invalide
invalid-inputEntrée invalide
invalid-jsonJSON invalide
invalid-labelLabel invalide
invalid-max-tokensNombre maximal de tokens invalide
invalid-messagesMessages invalides
invalid-modeMode invalide
invalid-modelModèle invalide
invalid-multipartCorps multipart invalide
invalid-nameNom invalide
invalid-patternMotif invalide
invalid-pr-numberNuméro de pull request invalide
invalid-providerFournisseur invalide
invalid-purposeFinalité invalide
invalid-repoDépôt invalide
invalid-repo-filterFiltre de dépôt invalide
invalid-repo-full-nameNom complet de dépôt invalide
invalid-requestRequête invalide
invalid-require-certExigence de certificat invalide
invalid-roleRôle invalide
invalid-rules-urlURL de règles invalide
invalid-run-idIdentifiant d’exécution invalide
invalid-scopeScope invalide
invalid-scopesScopes invalides
invalid-seat-capPlafond d’utilisateurs invalide
invalid-seatsNombre d’utilisateurs invalide
invalid-secretSecret invalide
invalid-sinceDate de début invalide
invalid-slaSLA invalide
invalid-slugSlug invalide
invalid-source-repoDépôt source invalide
invalid-statusStatut invalide
invalid-sub-templateSous-modèle invalide
invalid-target-urlURL cible invalide
invalid-teamÉquipe invalide
invalid-technical-admin-emailAdresse e-mail de l’administrateur technique invalide
invalid-temperatureTempérature invalide
invalid-tenant-slugSlug de tenant invalide
invalid-termDurée invalide
invalid-ttlTTL invalide
invalid-typeType invalide
invalid-urlURL invalide
invalid-usernameNom d’utilisateur invalide
invalid-valueValeur invalide
invalid-vendorÉditeur invalide
missing-assertionAssertion manquante
missing-paramsParamètres manquants
missing-sbomSBOM manquant
no-fieldsAucun champ
no-scopesAucun scope
pause-failedÉchec de la mise en pause
reason-requiredMotif requis
reason-too-longMotif trop long
removed-settingParamètre supprimé
reserved-prefixPréfixe réservé
saml-not-offeredSAML non proposé
seat-change-failedÉchec du changement du nombre d’utilisateurs
too-many-eventsTrop d’événements
too-many-idsTrop d’identifiants
too-many-messagesTrop de messages
too-many-teamsTrop d’équipes
unknown-scopeScope inconnu
unsupported-grant-typeType d’autorisation (grant type) non pris en charge
unsupported-spec-versionVersion de spécification non prise en charge
value-too-largeValeur trop grande

401 Unauthorized

L’authentification est absente, ou l’identifiant a été refusé.

Type d’erreur
authentication-requiredAuthentification requise
invalid-clientClient invalide
invalid-tokenJeton invalide

403 Forbidden

L’identifiant est valide, mais il n’est pas autorisé à effectuer cette action.

Type d’erreur
auditor-read-onlyAuditeur en lecture seule
console-onlyConsole uniquement
cross-tenantAccès inter-tenants
insufficient-scopeScope insuffisant
not-in-allowlistAbsent de la liste d’autorisation
oauth-session-pat-mint-forbiddenCréation de PAT interdite depuis une session OAuth
protected-accountCompte protégé
repo-owner-mismatchPropriétaire du dépôt non concordant
scope-escalationÉlévation de scope
step-up-requiredRéauthentification renforcée requise
tenant-scope-requiredScope de tenant requis
user-identity-requiredIdentité d’utilisateur requise
wildcard-mint-refusedCréation avec joker refusée

404 Not Found

La ressource n’existe pas, ou votre jeton ne peut pas la voir.

Type d’erreur
attempt-not-foundTentative introuvable
no-active-approvalAucune approbation active
no-findingsAucun résultat
not-foundIntrouvable
rule-fix-not-foundCorrectif à base de règles : le résultat n’existe pas
tenant-not-foundTenant introuvable

409 Conflict

La requête entre en conflit avec l’état actuel de la ressource.

Type d’erreur
already-acceptedDéjà accepté
already-cancelledDéjà annulé
already-disabledDéjà désactivé
already-pausedDéjà en pause
already-resolvedDéjà résolu
checkout-in-flightPaiement déjà en cours
domain-verification-requiredVérification du domaine requise
dry-run-expiredSimulation expirée
duplicate-grantAutorisation en double
duplicate-keyClé en double
duplicate-nameNom en double
duplicate-patternMotif en double
duplicate-pendingDemande en attente en double
internal-tenantTenant interne
last-ownerDernier propriétaire
name-conflictConflit de nom
no-ca-keysAucune clé d’AC
no-rewritesAucune réécriture
no-seats-availableAucun utilisateur disponible
not-cancelledNon annulé
not-cancellingAnnulation non en cours
not-enabledNon activé
not-enrolledNon inscrit
not-pendingNon en attente
not-removedNon retiré
operator-managedGéré par l’opérateur
overage-frozenDépassement gelé
overage-paid-plan-onlyDépassement réservé aux offres payantes
refund-unavailableRemboursement indisponible
rescan-skippedNouvelle analyse ignorée
rule-fix-already-proposedCorrectif à base de règles : un correctif est déjà en cours ou ouvert
rule-fix-disabledCorrectif à base de règles : AutoFix est désactivé pour l’organisation
rule-fix-not-openCorrectif à base de règles : le résultat est écarté
seat-cap-reachedPlafond d’utilisateurs atteint
self-approveAuto-approbation
send-in-progressEnvoi en cours
stale-seat-capPlafond d’utilisateurs obsolète
tenant-not-acceptingLe tenant n’accepte pas la demande

410 Gone

La ressource a existé et a définitivement disparu.

Type d’erreur
challenge-expiredDéfi expiré
logs-purgedJournaux purgés

413 Payload Too Large

Le corps de la requête dépasse la taille acceptée par cet endpoint.

Type d’erreur
payload-too-largeCharge utile trop volumineuse
too-many-rowsTrop de lignes

415 Unsupported Media Type

Le Content-Type de la requête n’est pas pris en charge.

Type d’erreur
unsupported-media-typeType de média non pris en charge

422 Unprocessable Content

La requête est bien formée, mais la ressource ne peut pas être traitée de cette manière.

Type d’erreur
rule-fix-check-not-supportedCorrectif à base de règles : le contrôle IaC n’a pas de correctif à base de règles
rule-fix-language-not-supportedCorrectif à base de règles : le langage du fichier n’est pas pris en charge
rule-fix-path-refusedCorrectif à base de règles : AutoFix ne modifie jamais ce fichier
rule-fix-pr-findingCorrectif à base de règles : le résultat a été signalé sur une pull request

429 Too Many Requests

Vous avez dépassé une limite de débit.

Type d’erreur
rate-limitedLimite de débit atteinte
rate-limited-globalLimite de débit globale atteinte
rule-fix-org-daily-limitCorrectif à base de règles : l’organisation a atteint sa limite AutoFix quotidienne
rule-fix-rate-limitedCorrectif à base de règles : un correctif a été tenté récemment
rule-fix-repo-limitCorrectif à base de règles : le dépôt a trop de pull requests AutoFix ouvertes

500 Internal Server Error

Une erreur s’est produite de notre côté.

Type d’erreur
db-errorErreur de base de données
insert-failedÉchec de l’insertion
internalInterne
internal-errorErreur interne
rate-limit-misconfiguredLimite de débit mal configurée
sign-failedÉchec de la signature

501 Not Implemented

Pas encore implémenté.

Type d’erreur
not-implemented-yetPas encore implémenté

502 Bad Gateway

Une dépendance en amont a renvoyé une erreur.

Type d’erreur
approve-failedÉchec de l’approbation
ci-bot-mint-failedÉchec de la création du bot CI
ci-bot-revoke-failedÉchec de la révocation du bot CI
forgejo-errorErreur Forgejo
forgejo-failedÉchec de Forgejo
forgejo-upstream-errorErreur en amont de Forgejo
install-failedÉchec de l’installation
mollie-errorErreur Mollie
mollie-unavailableMollie indisponible
obs-put-failedÉchec de l’écriture OBS
pr-open-failedÉchec de l’ouverture de la pull request
provisioning-failedÉchec du provisionnement
remove-failedÉchec de la suppression
revoke-failedÉchec de la révocation
test-failedÉchec du test
upstream-auth-failedÉchec de l’authentification en amont
upstream-errorErreur en amont
upstream-unreachableService en amont injoignable

503 Service Unavailable

Une dépendance est temporairement indisponible.

Type d’erreur
ai-disabledIA désactivée
attestations-disabledAttestations désactivées
billing-unavailableFacturation indisponible
ci-bots-unavailableBots CI indisponibles
forgejo-not-configuredForgejo non configuré
forgejo-proxy-disabledProxy Forgejo désactivé
forgejo-unavailableForgejo indisponible
forgejo-unreachableForgejo injoignable
invitations-unavailableInvitations indisponibles
not-configuredNon configuré
ownership-unverifiablePropriété invérifiable
renovate-disabledRenovate désactivé
rule-fix-unavailableCorrectif à base de règles : les correctifs à base de règles ne sont pas configurés
sbom-ingest-unavailableIngestion de SBOM indisponible
seat-change-unavailableChangement du nombre d’utilisateurs indisponible
seat-holds-unavailableRéservations d’utilisateurs indisponibles
secrets-unavailableSecrets indisponibles
siem-unavailableSIEM indisponible
token-exchange-disabledÉchange de jetons désactivé

Refus des correctifs de sécurité et des correctifs IA

Depuis le 2026-10-14, POST /orgs/{org}/dependency-updates/security-fixes/requests renvoie ces refus sous la forme security-fix-<reason>, et POST /orgs/{org}/code-security/sast/findings/{id}/ai-fix sous la forme ai-fix-<reason> ; chaque page ci-dessous couvre les deux orthographes. Les chemins obsolètes continuent de renvoyer autofix-<reason> jusqu’au 2027-10-15. Renvoyés par POST /orgs/{org}/code-security/deps/findings/{id}/autofix, POST /orgs/{org}/code-security/deps/repos/{repo}/autofix, POST /orgs/{org}/code-security/images/findings/{id}/autofix et POST /orgs/{org}/code-security/sast/findings/{id}/autofix lorsqu’aucune pull request n’est demandée. Voir Correctifs de sécurité.

Type d’erreurStatut
autofix-ai-disabled409
autofix-already-proposed409
autofix-binary-lockfile422
autofix-disabled409
autofix-ecosystem-not-supported422
autofix-feature-off409
autofix-image-no-base-fix422
autofix-image-not-attributed422
autofix-image-not-from-base422
autofix-image-source-unknown422
autofix-language-mismatch422
autofix-manifest-not-supported422
autofix-never-autofixed422
autofix-no-fixed-version422
autofix-no-provider409
autofix-not-curated422
autofix-not-enrolled409
autofix-not-found404
autofix-not-open409
autofix-nothing-fixable422
autofix-org-daily-limit429
autofix-package-not-supported422
autofix-path-refused422
autofix-pr-finding422
autofix-rate-limited429
autofix-repo-ai-disabled409
autofix-repo-limit429
autofix-repo-opted-out409
autofix-sbom-finding422
autofix-unavailable503
security-fix-repo-archived (autofix-repo-archived sur les chemins obsolètes)409

Refus de bascule du volet de sécurité

Renvoyés par PUT /orgs/{org}/dependency-updates/security-fixes/lane lorsque le volet Correctifs de sécurité ne peut pas prendre le relais de Renovate hébergé. Voir Prendre le relais de Renovate.

Type d’erreurStatut
security-lane-lane-off409
security-lane-unsupported-ecosystems409