Quand FerrFlow rencontre une erreur, il affiche un code comme error[E2001] avec un lien vers cette page. Utilisez le code pour trouver la cause et la solution.

Erreurs de configuration

E1001 : Fichier de config introuvable

Le fichier de config indiqué via --config n'existe pas.

E1002 : Échec du parsing ferrflow.json

Le fichier ferrflow.json contient du JSON invalide.

E1003 : Échec du parsing ferrflow.json5

Le fichier ferrflow.json5 contient du JSON5 invalide.

E1004 : Échec du parsing ferrflow.toml

Le fichier ferrflow.toml contient du TOML invalide.

E1005 : Erreur de sérialisation TOML

Erreur interne lors de l'écriture TOML.

E1006 : Échec du parsing .ferrflow

Le fichier .ferrflow contient du JSON invalide.

E1007 : Erreur de sérialisation .ferrflow

Erreur interne lors de l'écriture du dotfile.

E1008 : Résolution de chemin impossible

Un chemin dans la config n'a pas pu être résolu en chemin absolu.

E1009 : Écriture du loader temporaire impossible

Impossible d'écrire le loader JS/TS temporaire.

E1010 : Impossible d'exécuter tsx

Le runtime tsx est introuvable pour les configs .ts.

E1011 : Impossible d'exécuter node

Le runtime node est introuvable pour les configs .js.

E1012 : Évaluation de la config échouée

Le fichier JS/TS a levé une erreur lors de l'évaluation.

E1013 : Sortie de config invalide

Le fichier JS/TS a produit une sortie non UTF-8.

E1014 : JSON invalide depuis la config

Le fichier JS/TS n'a pas produit de JSON valide.

E1015 : Lecture du fichier impossible

Le fichier de config existe mais ne peut pas être lu.

E1016 : Plusieurs fichiers de config

Plusieurs fichiers de config trouvés dans le répertoire.

E1017 : Fichier déjà existant

ferrflow init lancé alors qu'un fichier de config existe déjà.

E1018 : Chemin hors du dépôt

Un chemin de versionedFiles est absolu, ou sort de la racine du dépôt avec ... FerrFlow ne lit et n'écrit les fichiers de version qu'à l'intérieur du dépôt : écrivez le chemin relativement à la racine.

E1019 : Le pattern d'include ne trouve aucun fichier

Une entrée de include ne correspond à aucun fichier. Les patterns sont résolus depuis le répertoire du fichier de config racine. Corrigez le chemin ou supprimez le pattern.

E1020 : Fichier inclus invalide

Un fichier chargé via include ne décrit pas un package valide. Soit il déclare workspace, include ou package, qui n'ont leur place que dans la config racine, soit son contenu ne se désérialise pas en package. Un fichier inclus décrit un seul package, avec les mêmes clés qu'une entrée package.

E1021 : Package inclus hors du dépôt

Le path d'un package inclus pointe hors de la racine du dépôt. Dans un fichier inclus, path est relatif au répertoire de ce fichier, et vaut ce répertoire quand il est vide.

E1022 : Nom de package en double

Deux packages portent le même name, qu'ils viennent de la config racine ou d'un include. L'erreur indique les deux chemins. Renommez l'un des deux.

E1023 : Package sans chemin

Un package de la config racine n'a pas de path. Renseignez-le relativement à la racine du dépôt, ou déplacez le package dans son propre fichier listé sous include, où path vaut par défaut le répertoire de ce fichier.

E1024 : Fichier versionné introuvable

Un package que cette exécution allait publier déclare une entrée versionedFiles dont le fichier n'est pas sur le disque. L'exécution s'arrête au moment du plan plutôt qu'au moment de l'écriture, où le même problème apparaîtrait sous la forme d'une simple erreur de lecture.

La cause habituelle est un chemin écrit relativement au package plutôt qu'à la racine du dépôt. package.path n'est pas un préfixe que FerrFlow ajoute pour vous :

[[package]]
name = "api"
path = "packages/api"

[[package.versioned_files]]
path = "Cargo.toml"              # faux, cherché à la racine du dépôt
# path = "packages/api/Cargo.toml"  # correct

L'erreur indique le chemin qu'elle suppose correct. ferrflow validate signale le même problème pour tous les packages configurés, y compris ceux que cette exécution n'aurait pas touchés.

Erreurs de validation

E1100 : Spec de repo invalide

L'argument --repo ne correspond pas au format attendu owner/repo.

E1101 : Erreur API GitHub

L'API GitHub a retourné une erreur lors de la validation distante.

E1102 : Erreur API GitLab

L'API GitLab a retourné une erreur lors de la validation distante.

E1103 : UTF-8 invalide

Le fichier de config distant contient un encodage UTF-8 invalide.

E1104 : Parsing de la config distante échoué

Le fichier de config distant n'a pas pu être parsé.

E1105 : Fichier de config distant introuvable

Le chemin spécifié n'existe pas dans le dépôt distant.

E1106 : Aucun fichier de config trouvé

Aucun fichier de config FerrFlow dans le dépôt distant.

E1107 : --ref nécessite --repo

Le flag --ref a été utilisé sans --repo.

Opérations Git

E2001 : Pas un dépôt git

Le répertoire courant n'est pas dans un dépôt git.

E2002 : Dépôt bare non supporté

FerrFlow ne supporte pas les dépôts git bare.

E2003 : Tag existant

Le tag que FerrFlow veut créer existe déjà.

E2004 : Push de branche échoué

Impossible de push la branche de release.

E2005 : Push rejeté

Le remote a rejeté le push.

E2006 : Push des tags échoué

Impossible de push les tags vers le remote.

E2007 : Push des tags flottants échoué

Impossible de force-push les tags flottants.

E2008 : Remote introuvable

Le remote git configuré n'existe pas.

E2009 : Vérification post-push échouée

Le commit de release n'a pas pu être vérifié sur la branche distante.

E2010 : Branche distante introuvable

La branche distante n'a pas été trouvée après le push.

E2011 : Release déjà en cours

Un autre ferrflow release détient le verrou de release .git/ferrflow.lock, ou le fichier de verrou n'a pas pu être créé. Un verrou laissé par un processus mort sur la même machine est repris automatiquement, et celui d'une autre machine au bout de six heures. Le message affiche le contenu du verrou pour savoir qui le détient.

E2012 : Force-push de la branche de release échoué

FerrFlow n'a pas pu force-push la branche de la PR ou MR de release. Le message reprend la sortie de git. Vérifiez que le token peut pousser sur cette branche et qu'aucune règle de protection n'y interdit le force-push.

E2013 : Inspection de la branche de release impossible

Avant de réutiliser la branche de release, FerrFlow lance git ls-remote, git fetch et git log dessus pour vérifier qu'elle ne contient que ses propres commits. L'une de ces commandes a échoué. La release continue : FerrFlow affiche un avertissement et fait comme si la branche ne contenait que ses commits.

E2014 : Suppression du tag distant échouée

ferrflow rollback n'a pas pu supprimer avec git push --delete un tag poussé par l'exécution échouée. Un tag absent du remote, ou qui pointe désormais vers un autre commit, est ignoré. Vérifiez que le token peut supprimer des tags, puis relancez le rollback.

E2015 : Revert échoué

ferrflow rollback n'a pas pu faire git revert sur le commit de release, par exemple parce qu'il entre en conflit avec des changements plus récents. Terminez le revert à la main. FerrFlow ne pousse jamais le revert : poussez la branche vous-même après vérification.

E2016 : Clone de shadow-release échoué

ferrflow shadow-release n'a pas pu cloner le dépôt dans un répertoire temporaire. Vérifiez que git est dans le PATH et que le répertoire temporaire du système est accessible en écriture.

API GitHub

E3001 : Création de release échouée

L'API GitHub Releases a retourné une erreur.

E3002 : Liste des releases échouée

Impossible de récupérer les releases existantes depuis l'API GitHub.

E3003 : Réponse des releases illisible

L'API GitHub a renvoyé une réponse dans un format inattendu.

E3004 : Publication de release échouée

Impossible de publier (sortir du brouillon) une release GitHub.

E3005 : Création de pull request échouée

L'API GitHub a retourné une erreur à la création de la PR.

E3006 : Réponse de PR illisible

L'API GitHub a renvoyé une PR dans un format inattendu.

E3007 : Champ manquant dans la réponse de PR

La réponse de l'API GitHub pour la PR ne contient pas le champ number ou node_id.

E3008 : Activation de l'auto-merge échouée

Impossible d'activer l'auto-merge sur la PR de release via l'API GraphQL.

E3009 : Réponse GraphQL illisible

L'API GraphQL de GitHub a renvoyé une réponse inattendue.

E3010 : Auto-merge échoué

La mutation GraphQL qui active l'auto-merge a renvoyé une erreur.

E3011 : Recherche de la PR de release échouée

La liste des pull requests ouvertes n'a pas pu être récupérée pendant que FerrFlow cherchait une PR de release existante à mettre à jour. Vérifiez le token et l'accès à l'API GitHub.

E3012 : Mise à jour de la PR de release échouée

FerrFlow a trouvé la PR de release ouverte, mais GitHub a refusé la mise à jour de son titre et de sa description. Vérifiez que le token a pull-requests: write.

E3013 : Requête GraphQL échouée

Une requête vers l'API GraphQL de GitHub a échoué avant d'obtenir une réponse exploitable, sur le réseau ou avec un statut HTTP d'erreur. FerrFlow appelle cette API pour créer le commit de release avec createCommitOnBranch quand FERRFLOW_BOT est défini.

E3014 : Erreur GraphQL

L'API GraphQL de GitHub a répondu par une erreur, ou createCommitOnBranch n'a renvoyé aucun identifiant de commit. Le message reprend le texte de l'erreur GitHub.

E3015 : Déplacement de la branche de release échoué

Quand FERRFLOW_BOT est défini, FerrFlow fait pointer la branche de release sur la tête de la branche cible via l'API refs de GitHub avant d'y créer le commit. GitHub a refusé la mise à jour, ou la création de la ref quand la branche n'existait pas encore. Vérifiez que le token a contents: write.

E3016 : Suppression de release échouée

ferrflow rollback n'a pas pu supprimer une release GitHub créée par l'exécution échouée. Supprimez-la à la main et relancez le rollback.

API GitLab

E3101 : Création de release échouée

L'API GitLab Releases a retourné une erreur.

E3102 : Création de merge request échouée

L'API GitLab a retourné une erreur à la création de la MR.

E3103 : Réponse de MR illisible

L'API GitLab a renvoyé une MR dans un format inattendu.

E3104 : Champ iid manquant

La réponse de l'API GitLab pour la MR ne contient pas le champ iid.

E3105 : Merge de la MR échoué

Impossible de merger la MR de release via l'API GitLab.

E3106 : Recherche de la MR de release échouée

La liste des merge requests ouvertes n'a pas pu être récupérée pendant que FerrFlow cherchait une MR de release existante à mettre à jour. Vérifiez le token et l'accès à l'API GitLab.

E3107 : Mise à jour de la MR de release échouée

FerrFlow a trouvé la MR de release ouverte, mais GitLab a refusé la mise à jour de son titre et de sa description. Vérifiez les droits du token sur le projet.

API Gitea

E3201 : Création de release échouée

L'API Gitea Releases a retourné une erreur à la création d'une release. Vérifiez que le token peut écrire dans le dépôt.

E3202 : Liste des releases échouée

Impossible de lister les releases depuis l'API Gitea pour chercher un brouillon de release existant pour le tag.

E3203 : Publication de release échouée

Impossible de publier (sortir du brouillon) une release Gitea.

API Bitbucket

E3301 : Résolution du tag de release échouée

Bitbucket n'a pas de releases. Sur Bitbucket Cloud, FerrFlow interroge plutôt l'API sur le nouveau tag pour en obtenir le lien, et cette requête a échoué. Vérifiez que le token peut lire le dépôt et que le tag a bien été poussé.

Fichiers de version

Les erreurs E4xxx concernent la lecture, l'écriture et le parsing des fichiers de version. Chaque format a sa propre plage de codes. Les codes UTF-8 invalide viennent de ferrflow validate, qui lit les fichiers versionnés comme des octets bruts ; les autres commandes signalent un fichier qui n'est pas en UTF-8 avec l'erreur de lecture du format.

E4101 : Lecture du fichier TOML impossible

FerrFlow n'a pas pu lire le fichier de version TOML (Cargo.toml, pyproject.toml) sur le disque.

E4102 : Syntaxe TOML invalide

Le fichier de version TOML ne se parse pas. Le message indique où se trouve l'erreur.

E4103 : Aucune version dans le fichier TOML

Aucun des champs package.version, workspace.package.version, project.version ou tool.poetry.version n'est renseigné. Un Cargo.toml qui déclare version.workspace = true tombe aussi ici quand le même fichier n'a pas de [workspace.package].version : faites pointer le fichier versionné vers le Cargo.toml racine du workspace.

E4104 : Écriture du fichier TOML impossible

L'écriture de la nouvelle version dans le fichier de version TOML (Cargo.toml, pyproject.toml) a échoué.

E4105 : UTF-8 invalide dans le fichier TOML

Le contenu du fichier de version TOML (Cargo.toml, pyproject.toml) n'est pas de l'UTF-8 valide.

E4201 : Lecture du fichier JSON impossible

FerrFlow n'a pas pu lire le fichier de version JSON (package.json, composer.json) sur le disque. Le même code couvre le checkpoint de release .git/ferrflow.checkpoint.json.

E4202 : Syntaxe JSON invalide

Le fichier de version JSON ne se parse pas. FerrFlow lève aussi ce code quand le checkpoint de release .git/ferrflow.checkpoint.json est corrompu ou a été écrit par une autre version de FerrFlow : supprimez ce fichier pour repartir de zéro.

E4203 : Aucune version dans le fichier JSON

Le fichier JSON n'a pas de champ version au premier niveau.

E4204 : Écriture du fichier JSON impossible

L'écriture de la nouvelle version dans le fichier de version JSON (package.json, composer.json) a échoué. FerrFlow le lève aussi quand il ne peut pas enregistrer ou supprimer le checkpoint de release, ou réécrire le manifeste d'un package dépendant (package.json ou Cargo.toml) pour suivre une dépendance bumpée.

E4205 : UTF-8 invalide dans le fichier JSON

Le contenu du fichier de version JSON (package.json, composer.json) n'est pas de l'UTF-8 valide.

E4301 : Lecture de Chart.yaml (helm) impossible

FerrFlow n'a pas pu lire le Chart.yaml déclaré avec format = "helm" sur le disque.

E4302 : Aucune version dans Chart.yaml (helm)

Le Chart.yaml déclaré avec format = "helm" n'a pas de champ version: au premier niveau.

E4303 : Écriture de Chart.yaml (helm) impossible

L'écriture de la nouvelle version dans le Chart.yaml déclaré avec format = "helm" a échoué.

E4304 : UTF-8 invalide dans Chart.yaml (helm)

Le contenu du Chart.yaml déclaré avec format = "helm" n'est pas de l'UTF-8 valide.

E4401 : Lecture du fichier XML impossible

FerrFlow n'a pas pu lire le fichier de version XML (pom.xml) sur le disque.

E4402 : Aucune version dans le fichier XML

Le fichier XML n'a pas de balise <version>.

E4403 : Écriture du fichier XML impossible

L'écriture de la nouvelle version dans le fichier de version XML (pom.xml) a échoué.

E4404 : UTF-8 invalide dans le fichier XML

Le contenu du fichier de version XML (pom.xml) n'est pas de l'UTF-8 valide.

E4410 : Lecture du fichier .csproj impossible

FerrFlow n'a pas pu lire le fichier .csproj sur le disque.

E4411 : Aucune version dans le fichier .csproj

Le fichier .csproj n'a pas d'élément <Version>.

E4412 : Écriture du fichier .csproj impossible

L'écriture de la nouvelle version dans le fichier .csproj a échoué.

E4413 : UTF-8 invalide dans le fichier .csproj

Le contenu du fichier .csproj n'est pas de l'UTF-8 valide.

E4501 : Lecture du fichier Gradle impossible

FerrFlow n'a pas pu lire le fichier de build Gradle (build.gradle, build.gradle.kts) sur le disque.

E4502 : Aucune version dans le fichier Gradle

Le fichier de build Gradle n'a pas d'affectation version = "…".

E4503 : Écriture du fichier Gradle impossible

L'écriture de la nouvelle version dans le fichier de build Gradle (build.gradle, build.gradle.kts) a échoué.

E4504 : UTF-8 invalide dans le fichier Gradle

Le contenu du fichier de build Gradle (build.gradle, build.gradle.kts) n'est pas de l'UTF-8 valide.

E4601 : Impossible de lancer git describe

Un fichier versionné gomod tire sa version des tags git via git describe, et la commande n'a pas pu être lancée. Vérifiez que git est dans le PATH.

E4602 : Aucun tag de version

git describe n'a trouvé aucun tag correspondant à *@v* ou v* pour le package.

Depuis FerrFlow v3, le flux de release intercepte ce cas et repart de la version de départ de la stratégie (0.0.0, 0, …) : la première release d'un dépôt neuf réussit sans tag créé à la main. Le code existe toujours pour les programmes qui utilisent GoModVersionFile directement, mais ferrflow release ne devrait plus l'afficher.

E4603 : Version illisible depuis go.mod

La version d'un module Go vient des tags git : FerrFlow ne peut pas la lire dans le contenu de go.mod. ferrflow validate ignore les entrées gomod avec un avertissement.

E4701 : Lecture du fichier texte impossible

FerrFlow n'a pas pu lire le fichier de version texte (VERSION, VERSION.txt) sur le disque.

E4702 : Aucune version dans le fichier texte

Le fichier texte est vide. Avec un selector, ce code couvre aussi une regex qui ne compile pas, qui n'a pas exactement un groupe de capture, qui ne trouve rien ou qui ne capture que des espaces.

E4703 : Écriture du fichier texte impossible

L'écriture de la nouvelle version dans le fichier de version texte (VERSION, VERSION.txt) a échoué.

E4704 : UTF-8 invalide dans le fichier texte

Le contenu du fichier de version texte (VERSION, VERSION.txt) n'est pas de l'UTF-8 valide.

E4801 : Lecture de pubspec.yaml impossible

FerrFlow n'a pas pu lire pubspec.yaml sur le disque.

E4802 : Aucune version dans pubspec.yaml

pubspec.yaml n'a pas de clé version: au premier niveau.

E4803 : Écriture de pubspec.yaml impossible

L'écriture de la nouvelle version dans pubspec.yaml a échoué.

E4804 : UTF-8 invalide dans pubspec.yaml

Le contenu de pubspec.yaml n'est pas de l'UTF-8 valide.

E4811 : Lecture de mix.exs impossible

FerrFlow n'a pas pu lire mix.exs sur le disque.

E4812 : Aucune version dans mix.exs

mix.exs ne contient pas de littéral version: "…".

E4813 : Écriture de mix.exs impossible

L'écriture de la nouvelle version dans mix.exs a échoué.

E4814 : UTF-8 invalide dans mix.exs

Le contenu de mix.exs n'est pas de l'UTF-8 valide.

E4821 : Lecture de Chart.yaml (chartyaml) impossible

FerrFlow n'a pas pu lire le Chart.yaml déclaré avec format = "chartyaml" sur le disque.

E4822 : Aucune version dans Chart.yaml (chartyaml)

Le Chart.yaml déclaré avec format = "chartyaml" n'a pas de clé version: au premier niveau.

E4823 : Écriture de Chart.yaml (chartyaml) impossible

L'écriture de la nouvelle version dans le Chart.yaml déclaré avec format = "chartyaml" a échoué.

E4824 : UTF-8 invalide dans Chart.yaml (chartyaml)

Le contenu du Chart.yaml déclaré avec format = "chartyaml" n'est pas de l'UTF-8 valide.

E4831 : Lecture du fichier .gemspec impossible

FerrFlow n'a pas pu lire le fichier .gemspec sur le disque.

E4832 : Aucune version dans le fichier .gemspec

Le fichier .gemspec n'a pas d'affectation <ident>.version = "…".

E4833 : Écriture du fichier .gemspec impossible

L'écriture de la nouvelle version dans le fichier .gemspec a échoué.

E4834 : UTF-8 invalide dans le fichier .gemspec

Le contenu du fichier .gemspec n'est pas de l'UTF-8 valide.

E4841 : Lecture de Package.swift impossible

FerrFlow n'a pas pu lire Package.swift sur le disque.

E4842 : Aucune version dans Package.swift

Package.swift n'a pas de déclaration let <name>Version = "…" au premier niveau.

E4843 : Écriture de Package.swift impossible

L'écriture de la nouvelle version dans Package.swift a échoué.

E4844 : UTF-8 invalide dans Package.swift

Le contenu de Package.swift n'est pas de l'UTF-8 valide.

E4851 : Lecture du fichier .cabal impossible

FerrFlow n'a pas pu lire le fichier .cabal sur le disque.

E4852 : Aucune version dans le fichier .cabal

Le fichier .cabal n'a pas de champ version: au premier niveau.

E4853 : Écriture du fichier .cabal impossible

L'écriture de la nouvelle version dans le fichier .cabal a échoué.

E4854 : UTF-8 invalide dans le fichier .cabal

Le contenu du fichier .cabal n'est pas de l'UTF-8 valide.

E4861 : Lecture de CMakeLists.txt impossible

FerrFlow n'a pas pu lire CMakeLists.txt sur le disque.

E4862 : Aucune version dans CMakeLists.txt

CMakeLists.txt n'a pas de déclaration project(… VERSION …).

E4863 : Écriture de CMakeLists.txt impossible

L'écriture de la nouvelle version dans CMakeLists.txt a échoué.

E4864 : UTF-8 invalide dans CMakeLists.txt

Le contenu de CMakeLists.txt n'est pas de l'UTF-8 valide.

E4871 : Lecture de galaxy.yml impossible

FerrFlow n'a pas pu lire galaxy.yml sur le disque.

E4872 : Aucune version dans galaxy.yml

galaxy.yml n'a pas de clé version: au premier niveau.

E4873 : Écriture de galaxy.yml impossible

L'écriture de la nouvelle version dans galaxy.yml a échoué.

E4874 : UTF-8 invalide dans galaxy.yml

Le contenu de galaxy.yml n'est pas de l'UTF-8 valide.

Pré-release

E5001 : Nom de channel vide

Le nom du channel de pré-release est vide.

E5002 : Nom de channel invalide

Seuls les alphanumériques et tirets sont acceptés.

Versioning

E5010 : Semver invalide

La version actuelle n'est pas un semver valide.

Hooks

E6001 : Hook échoué

Un hook a échoué avec on_failure: "abort".

Publishers

E6101 : Publisher mal configuré

Un publisher n'a pas pu démarrer parce que sa configuration est incomplète : un registry absent de workspace.registries, une variable tokenEnv non définie, un contexte de build, un chart ou un fichier d'asset introuvable, ou un trustedPublishing utilisé hors de GitHub Actions. Le message nomme le publisher et l'élément manquant. Rien n'a été publié.

E6102 : Publication échouée

L'étape de publication a tourné et a échoué : cargo publish, npm publish, twine upload, docker buildx, helm push, gh release upload ou un webhook a renvoyé une erreur. Le message reprend l'erreur de l'outil, avec les lignes qui en expliquent la cause. Pour cargo, FerrFlow réessaie quelques fois quand l'erreur ressemble à un retard d'index du registre juste après la publication d'une dépendance, et signale E6102 une fois les essais épuisés.

Query

E7001 : Aucun package configuré

Aucun package dans le fichier de config.

E7002 : Package introuvable

Le nom de package spécifié n'existe pas dans la config.

E7003 : Plage de diff invalide

ferrflow diff attend une plage de la forme <from>..<to>, avec deux bornes non vides, par exemple v1.4.0..v1.6.0.

E7004 : Nom de package requis

Le dépôt est un monorepo : ferrflow diff doit savoir quel package comparer, avec ferrflow diff <package> <from>..<to>.

E7005 : Borne de plage introuvable

Une borne de la plage de ferrflow diff ne correspond à aucun tag. FerrFlow essaie la valeur telle quelle, puis comme une version passée dans le modèle de tag du package, avec et sans v initial. Le message liste les noms essayés. Passez un nom de tag ou une version existants.

Monorepo

E8001 : Package introuvable dans la config

Un package référencé pendant la release n'a pas été trouvé.

E8002 : Tag flottant régressif

Un tag flottant serait déplacé vers une version plus ancienne.

E8003 : Cycle de dépendances

Deux packages ou plus dépendent l'un de l'autre via dependsOn, directement ou transitivement : il n'existe aucun ordre de release possible. Le message nomme la boucle, par exemple cycle detected: api → web → api. Supprimez l'une des arêtes dependsOn pour la casser. La vérification s'exécute avant toute écriture de version, donc une configuration cyclique ne laisse jamais de release partielle.

Rollback

E10000 : Rollback bloqué

Chaque package de l'exécution échouée a publié sur un registre qui ne permet pas de dépublier : ferrflow rollback n'a rien qu'il puisse annuler. Le plan affiché indique chaque package bloqué et la raison.