Skip to content

Dit pourquoi le déclenchement d'une mise à jour échoue - #31

Merged
flocom merged 1 commit into
mainfrom
claude/remove-apel-sensitive-data-73l5iu
Aug 2, 2026
Merged

Dit pourquoi le déclenchement d'une mise à jour échoue#31
flocom merged 1 commit into
mainfrom
claude/remove-apel-sensitive-data-73l5iu

Conversation

@flocom

@flocom flocom commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Le bouton Appliquer maintenant affiche « Une erreur serveur est survenue. » quelle que soit la cause.

Les messages écrits pour chaque panne — jeton refusé, updater injoignable — ne sortaient jamais : ils étaient levés en Error ordinaire, que handleApiError remplace par son message générique avant de n'écrire la cause que dans les logs du conteneur. Diagnostiquer demandait donc un accès SSH.

Ce qui change

Ces erreurs deviennent des HttpError, donc lisibles à l'écran. La panne réseau porte en plus la cause système que fetch range dans cause — l'information qui distingue les deux situations autrement identiques :

Cause Ce que ça désigne
ENOTFOUND conteneur absent, ou placé sur un autre réseau que l'application
ECONNREFUSED service arrêté, ou port inattendu

Vérifications

Contre un vrai Watchtower 1.7.1, application construite et servie, quatre situations :

Situation Réponse
Jeton correct, service joignable 200 · {"outcome":"started"}
Jeton différent de celui du service 502 · « Jeton refusé par le service de mise à jour : il a démarré avec une autre valeur. »
Nom d'hôte non résolu 502 · « injoignable sur http://updater:8080 (ENOTFOUND — getaddrinfo ENOTFOUND updater) »
Connexion refusée 502 · « injoignable sur http://127.0.0.1:8099 (ECONNREFUSED — connect ECONNREFUSED 127.0.0.1:8099) »

L'endpoint est réservé aux administrateurs et ces messages ne contiennent ni jeton ni secret.

tsc --noEmit, npm run lint et next build passent.


Generated by Claude Code

Le bouton « Appliquer maintenant » affichait « Une erreur serveur est
survenue. » quelle que soit la cause. Les messages écrits pour chaque panne —
jeton refusé, updater injoignable — ne sortaient jamais : ils étaient levés en
`Error` ordinaire, que le gestionnaire d'API remplace par son message
générique avant de n'écrire la cause que dans les logs du conteneur.

Ces erreurs deviennent des `HttpError`, donc lisibles à l'écran, et la panne
réseau porte désormais la cause système rangée par `fetch` dans `cause` :
`ENOTFOUND` désigne un conteneur absent ou placé sur un autre réseau,
`ECONNREFUSED` un service arrêté ou un port inattendu. Sans elle, ces deux
situations demandent une session sur le serveur pour être distinguées.

Vérifié contre un vrai Watchtower, quatre situations :

- jeton correct et service joignable → 200, « started »
- jeton différent de celui du service → 502, « Jeton refusé… »
- nom d'hôte non résolu → 502, « ENOTFOUND — getaddrinfo ENOTFOUND updater »
- connexion refusée → 502, « ECONNREFUSED — connect ECONNREFUSED … »

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SfQYBU4xXTeSEHKhHQXdD
@flocom
flocom merged commit 1943d20 into main Aug 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants