# GAB-011 · SessionProviderErrorBoundary — « Secours quand un provider échoue »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechPlayEngine
**Critère validé :** changer le JSON change l'écran sans modifier le HTML. ✅ check.py 12/12.

## Pack (structure officielle par-GAB)
```
GAB-011/
  renderer.html            ← moteur error boundary (ne pas modifier par instance)
  instance.example.json    ← SOURCE DE VÉRITÉ (contenu réel, à plat)
  schema.contract.json     ← contrat de validation
  README-contract.md       ← ce fichier
```

## Champs requis (instance, à plat)
`gab_id` · `error_boundary_id` · `title` · `body` · `retry_cta{label,action}` · `skip_cta{label,action}`

Optionnels : `subtitle`, `technical_code`, `feedback_retry`, `feedback_skip`.

## Ce qui vient du JSON vs HTML
- **JSON** : titre, corps, sous-titre, code technique, libellés des boutons, messages de feedback post-clic.
- **HTML** : layout, icône structurelle (🛟), style coral error, boutons structurels, zone feedback aria-live.

## Garde-fous
- **BLOCKED** si `title` absent / `body` absent / `retry_cta` absent / `skip_cta` absent.
- **Isolation d'erreur** : ce gabarit couvre uniquement les erreurs provider/module (logique). Perte réseau → GAB-009. Session vide → GAB-012. Config obsolète → GAB-014.
- **Session continue** : l'élève peut toujours sauter le bloc fautif — `skip_cta` est obligatoire.
- **technical_code** : affiché en monospace si présent, jamais inventé — doit refléter l'erreur réelle.

## QA à vérifier
1. Modifier `title`/`body` dans l'instance → rendu change sans toucher au HTML (critère d'or).
2. Supprimer `retry_cta` → BLOCKED propre.
3. Clic retry → feedback en `--gold-deep`.
4. Clic skip → feedback en `--mint-deep`.
5. Instance externe injectée via `ENGINE.init(ext)` → rendu change.
6. Responsive 375/768/1024.

## Source
`INDEX-300-playengine-GAB-011-015-PLAYABLE.html` (stage `data-tpl="11"`, handlers `errAction`).


## external_refs / dependencies
Réfs à d'autres GAB présentes dans le contenu de CET écran (navigation/prérequis pédagogiques extraits de la source, PAS des GAB à convertir ici) :
- GAB-009
