Skip to content

🚨 6 instances en HTTP 500 depuis le déploiement nocturne du 2026-10-02 — vendor/ incomplet (composer lancé en CGI) #569

Description

@ronan-develop

Constat (audit du 2026-10-02, lecture seule)

/login renvoie HTTP 500 sur 6 des 7 instances (yannick, baptiste, coralie, corentin, damien, elea). ronan répond 200. Sur ces 6 instances, toute commande console échoue aussi : tous leurs crons (Messenger, dispatch Takeout, purges, déploiement nocturne) sont en erreur. Le messenger.log de yannick atteint 53 Mo (erreurs répétées, sans rotation).

Cause

  • Les 6 instances sont au commit 06602c1 (30/09). Leur config/bundles.php et leur composer.lock rĂ©fĂ©rencent symfony/monolog-bundle (ajoutĂ© par 463b0bf), mais vendor/symfony/monolog-bundle est absent. Erreur : Class "Symfony\Bundle\MonologBundle\MonologBundle" not found.
  • Log deploy-nightly.log du dĂ©ploiement de 02:15 : composer a Ă©tĂ© lancĂ© avec le PHP en mode CGI (Composer should be invoked via the CLI version of PHP, not the cgi-fcgi SAPI), a affichĂ© son aide et n'a rien installĂ©, en sortant avec le code 0. Le script avait dĂ©jĂ  fait git checkout --force : nouveau code + ancien vendor/, puis cache:clear en Ă©chec. .deployed-sha est restĂ© inchangĂ© mais le code, lui, avait changĂ©.
  • Le correctif 61ba614 (composer via PHP CLI explicite) est sur main depuis 09:47, mais absent du code des 6 instances : le script exĂ©cutĂ© la nuit prochaine sera encore l'ancien, qui rĂ©cupĂ©rera main (Symfony 8.1) puis relancera composer de la mĂŞme façon dĂ©faillante. Sans intervention, la guĂ©rison spontanĂ©e n'interviendrait qu'Ă  la nuit du 2026-10-04.

Décision (2026-10-02)

Pas de réparation partielle par SSH instance par instance. Les divergences sont réglées dans l'ordre de priorité ci-dessous, puis un déploiement exceptionnel unique (avec autorisation explicite à ce moment-là) aligne les 7 instances.

  1. Durcir les scripts de déploiement (ticket lié : composer CLI partout, vérification de vendor/, rollback)
  2. PR Panel admin : afficher la charge serveur et l'état des imports Takeout différés #528 (admin charge Takeout) mergée : ses 2 migrations additives partiront dans ce déploiement
  3. Résorption de la dérive schéma/entités (ticket lié)
  4. Déploiement exceptionnel des 7 instances

Critères de clôture

  • HTTP 200 sur /login des 7 instances
  • doctrine:migrations:status sans migration en attente sur chacune
  • vendor/ complet (composer install --dry-run : rien Ă  installer) sur chacune
  • Le script nocturne prĂ©sent sur disque sur chaque instance est la version corrigĂ©e
  • Crons de nouveau sans erreur ; dĂ©cision sur la rotation de messenger.log

Hors périmètre

Les évolutions de #561 et #547.

Activity

  1. self-assigned this
    on Oct 2, 2026
  2. added
    bugComportement incorrect ou inattendu
    urgentÀ traiter en priorité, avant le reste du backlog
    on Oct 2, 2026
  3. ronan-develop commented on Oct 2, 2026

    @ronan-develop
    OwnerAuthor

    Résolu le 2026-10-02. Les 7 instances sont à 85ab1cc (HTTP 200 sur /login et /api/docs, vendor/ complet, schema:update : « Nothing to update »).

    Cause : composer lancé avec le PHP CGI du PATH cron par le déploiement nocturne : il affichait son aide et sortait en code 0 sans rien installer, alors que git checkout avait déjà mis le code à jour. Résultat : nouveau code + ancien vendor/ (3 paquets manquants), et aucun rollback.

    Correctifs : #570 (PR #602) — composer via PHP CLI explicite partout, vérification de vendor/ après l'install, rollback si l'échec précède les migrations. #528 (PR #603) et #571 (PR #604) alignés dans le même déploiement exceptionnel. Déploiement des 6 instances lancé manuellement par ronan, ronan (pilote) déployée en premier.

    Suites : rotation de messenger.log (~50 Mo par instance) et exécution des tests bash en CI, traitées dans des tickets dédiés.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugComportement incorrect ou inattenduurgentÀ traiter en priorité, avant le reste du backlog

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions