---
id: "3188c0ce-930e-40b7-82df-fbc0258ef63c"
number: 185
title: "[Bug] Suppression d'exercice casse le chargement des programmes"
status: "qa"
priority: "high"
sprint: null
links: [{"target":"#183","kind":"relatesTo"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
createdAt: 1785423526481
updatedAt: 1785427337929
version: 4
---
Contexte au 30 juillet 2026 : après suppression d'un exercice depuis la bibliothèque, l'utilisateur ne peut plus charger ses programmes et voit le message `Impossible de charger tes programmes`.

Attendu produit/UX :
- la suppression d'un exercice ne doit jamais casser l'ouverture des programmes qui le référencent ;
- les programmes doivent rester lisibles même si l'exercice source a été supprimé/archivé ;
- l'entrée peut être conservée comme archive/snapshot dans le programme, ou au minimum gérée défensivement sans faire tomber l'écran entier.

Diagnostic architecture en cours :
- ce n'est probablement pas une simple rupture de clé étrangère ;
- le chemin snapshot `ProgramExercise` semble déjà dénormalisé et défensif ;
- l'hypothèse la plus probable est un lookup non défensif sur une map/liste d'exercices actifs lors de l'enrichissement ou de l'affichage des programmes.

Objectif du ticket :
- identifier la stack trace exacte et le point de rupture réel ;
- corriger le chargement pour qu'un exercice supprimé n'empêche jamais d'ouvrir les programmes ;
- préserver la cohérence locale/sync si des snapshots ou enrichissements en dépendent.

Priorité : correctif urgent post-build.