# Codes d’erreur

Chaque erreur a un code stable, un message et une solution. Les codes ne sont jamais traduits.

## E_INTERNAL

HTTP 500 · exit 1

Une erreur interne s’est produite dans GenPM.

**Solution:** Réessayez avec --verbose et, si le problème persiste, signalez-le avec son requestId.

## E_BAD_REQUEST

HTTP 400 · exit 2

La requête est invalide : …

**Solution:** Vérifiez les paramètres et réessayez.

## E_USAGE

HTTP 400 · exit 2

Utilisation invalide : …

**Solution:** Exécutez genpm --help pour voir les options disponibles.

## E_CONFIRM_REQUIRED

HTTP 400 · exit 2

Confirmation requise : …

**Solution:** Exécutez dans un terminal interactif, ou passez … pour confirmer.

## E_PAYLOAD_TOO_LARGE

HTTP 413 · exit 2

Le corps de la requête est trop volumineux.

**Solution:** Envoyez 16 Ko au maximum.

## E_NOT_FOUND

HTTP 404 · exit 3

… est introuvable.

**Solution:** Vérifiez l’orthographe ou recherchez avec genpm search <requête>.

## E_NO_MATCHING_VERSION

HTTP 404 · exit 3

Aucune version de … ne correspond à ….

**Solution:** Exécutez genpm info … pour voir les versions publiées.

## E_DEST_CONFLICT

HTTP 409 · exit 4

… existe et n’est pas vide.

**Solution:** Utilisez --dest <dir> ou --force (crée d’abord une sauvegarde).

## E_RANGE_UNSATISFIED

HTTP 409 · exit 4

Aucune version ne satisfait toutes les plages : …

**Solution:** Installez d’abord une version compatible du paquet en conflit, ou fixez une autre version.

## E_ALREADY_INSTALLED

HTTP 409 · exit 4

… … est déjà installé.

**Solution:** Rien à faire. Utilisez genpm list pour voir les paquets installés.

## E_VERSION_EXISTS

HTTP 409 · exit 4

…@… a déjà été publié.

**Solution:** Les versions sont immuables : incrémentez la version dans genpm.json et créez un nouveau tag.

## E_DRIFT

HTTP 409 · exit 4

… a des modifications locales dans ….

**Solution:** Utilisez --keep-code pour conserver votre code, ou --force pour le supprimer quand même.

## E_REQUIRED_BY

HTTP 409 · exit 4

… est requis par ….

**Solution:** Supprimez d’abord les paquets dépendants.

## E_BUSY

HTTP 409 · exit 4

Un autre processus GenPM modifie ce projet.

**Solution:** Attendez qu’il se termine. Si aucun n’est en cours, supprimez .genpm/.lock.

## E_PLAN_STALE

HTTP 409 · exit 4

Le projet a changé depuis le calcul du plan.

**Solution:** Recalculez le plan (simulation) et confirmez-le.

## E_NETWORK

HTTP 502 · exit 5

Impossible de joindre ….

**Solution:** Vérifiez votre connexion, votre proxy ou GENPM_REGISTRY, puis réessayez.

## E_UPSTREAM_GIT

HTTP 502 · exit 5

L’hôte Git a échoué : …

**Solution:** Vérifiez que le dépôt est accessible avec vos identifiants Git, puis réessayez.

## E_RATE_LIMITED

HTTP 429 · exit 5

Trop de requêtes.

**Solution:** Attendez … et réessayez.

## E_READ_ONLY

HTTP 503 · exit 5

Le registre est en lecture seule pendant une maintenance.

**Solution:** L’installation fonctionne toujours. Réessayez de publier plus tard ; suivi sur genpm.net.

## E_INTEGRITY

HTTP 422 · exit 6

La vérification d’intégrité de … a échoué : …

**Solution:** N’utilisez pas ce paquet. Signalez-le via genpm.net/report si cela persiste.

## E_SIGNATURE

HTTP 422 · exit 6

La signature du registre pour … est invalide.

**Solution:** Ne l’installez pas. Mettez à jour GenPM (nouvelles clés de signature) et signalez-le si cela persiste.

## E_PATH_UNSAFE

HTTP 422 · exit 6

Chemin non sûr … (…).

**Solution:** Utilisez un chemin relatif dans le projet, sans .., chemin absolu ni dossier réservé.

## E_AUTORUN_FILE

HTTP 422 · exit 6

… contient des fichiers exécutés automatiquement : ….

**Solution:** Ces fichiers ne sont jamais installés. Demandez à l’auteur de les retirer, ou utilisez --allow-autorun uniquement pour des éditeurs vérifiés.

## E_SCAN_FAILED

HTTP 422 · exit 6

L’analyse de sécurité a rejeté … : …

**Solution:** Corrigez les problèmes listés par genpm validate et publiez une nouvelle version.

## E_INSECURE_PERMS

HTTP 400 · exit 6

… est lisible par d’autres utilisateurs.

**Solution:** Exécutez chmod 600 ….

## E_QUARANTINED

HTTP 451 · exit 6

… est en cours d’examen de sécurité.

**Solution:** Réessayez plus tard ou choisissez un autre paquet. Les examens prennent moins de 24 heures ouvrées.

## E_REF_MUTABLE

HTTP 422 · exit 6

… n’est pas une référence immuable.

**Solution:** Utilisez un tag Git ou le SHA complet de 40 caractères d’un commit, jamais une branche.

## E_ADVISORY

HTTP 409 · exit 6

… … fait l’objet d’une alerte de sécurité de gravité ….

**Solution:** Mettez à jour vers … ou ultérieur.

## E_TOO_LARGE

HTTP 422 · exit 6

… dépasse la limite de taille : …

**Solution:** Excluez des fichiers avec .genpmignore, ou augmentez la limite avec --max-size si le paquet est légitime.

## E_MANIFEST_INVALID

HTTP 422 · exit 6

genpm.json est invalide.

**Solution:** Corrigez les champs listés dans les détails. Exécutez genpm validate pour un rapport complet.

## E_LOCK_INVALID

HTTP 422 · exit 6

genpm.lock est invalide ou corrompu.

**Solution:** Restaurez-le depuis Git ; ne modifiez jamais genpm.lock à la main.

## E_NAME_MISMATCH

HTTP 422 · exit 6

Le nom du manifeste … ne correspond pas à ….

**Solution:** Publiez avec le nom déclaré dans genpm.json.

## E_REF_NOT_FOUND

HTTP 422 · exit 3

… n’existe pas dans ….

**Solution:** Créez et poussez le tag : git tag … && git push --tags.

## E_REF_NOT_PUSHED

HTTP 422 · exit 4

… n’est pas sur le dépôt distant ou pointe vers un autre commit.

**Solution:** Poussez le tag avec git push origin ….

## E_REPO_NOT_ALLOWED

HTTP 422 · exit 7

… n’appartient pas au scope @….

**Solution:** Publiez depuis un dépôt du propriétaire GitHub lié au scope.

## E_REPO_CHANGED

HTTP 422 · exit 6

Le dépôt derrière … a changé (possible repojacking).

**Solution:** Écrivez à hello@genpm.net avec l’objet [SECURITY] pour transférer le paquet.

## E_CONTEXT_MISSING

HTTP 422 · exit 6

Le fichier de règles IA … n’existe pas.

**Solution:** Créez … (genpm init génère un modèle) ou définissez x dans genpm.json.

## E_CONTEXT_TOO_LARGE

HTTP 422 · exit 6

Le fichier de règles IA … dépasse 16 Ko.

**Solution:** Raccourcissez-le : concentrez les règles sur l’objectif, la carte, l’intégration, les conventions et les interdits.

## E_AUTH

HTTP 401 · exit 7

Vous n’êtes pas connecté, ou votre token est invalide ou expiré.

**Solution:** Exécutez genpm login (ou définissez GENPM_TOKEN en CI).

## E_FORBIDDEN_SCOPE

HTTP 403 · exit 7

Vous ne pouvez pas publier dans @….

**Solution:** Demandez les droits de publication à un propriétaire de @…, ou utilisez votre propre scope.

## E_GIT_MISSING

HTTP 500 · exit 8

Git n’est pas installé ou est antérieur à 2.25.

**Solution:** Installez Git 2.25 ou ultérieur, puis réessayez.

## E_NODE_VERSION

HTTP 500 · exit 8

GenPM nécessite Node.js 20.11 ou ultérieur (… trouvé).

**Solution:** Mettez à jour Node.js ou installez le binaire autonome de genpm, qui n’en a pas besoin : genpm.net/docs/install

## E_UPGRADE_UNSUPPORTED

HTTP 400 · exit 8

Cette copie de GenPM a été installée avec … : genpm upgrade ne met à jour que le binaire autonome.

**Solution:** Mettez-la à jour avec … ou installez le binaire depuis genpm.net/docs/install.

## E_UPGRADE_PERMISSION

HTTP 500 · exit 8

Impossible de remplacer … : permission refusée.

**Solution:** Lancez genpm upgrade avec l’utilisateur propriétaire de ce fichier, ou réinstallez avec le script de genpm.net/docs/install.

## E_UPGRADE_INTEGRITY

HTTP 422 · exit 6

Le fichier … téléchargé ne correspond pas à sa somme de contrôle SHA-256 publiée.

**Solution:** Rien n’a été modifié. Réessayez plus tard ; si cela se reproduit, signalez-le à hello@genpm.net avec l’objet [SECURITY].

## E_MCP_SERVE_UNAVAILABLE

HTTP 500 · exit 8

genpm mcp serve n’est inclus que dans le binaire autonome de genpm.

**Solution:** Utilisez npx -y @genpm/mcp comme commande MCP (genpm mcp setup le fait pour vous) ou installez le binaire depuis genpm.net/docs/install.

## E_NOT_A_PROJECT

HTTP 400 · exit 8

Aucun projet trouvé dans ….

**Solution:** Exécutez la commande dans un projet (avec package.json ou .git), ou passez --cwd <dir>.
