# Coaster World DATA v1.0.0 — correctif Overpass

Date : 2 octobre 2026

## Problème corrigé

Lors de l’enrichissement multi-sources d’un parc, Overpass peut répondre HTTP 504 puis réussir après une relance. La documentation officielle explique que ce code peut correspondre à une charge du serveur empêchant l’exécution de la requête : https://dev.overpass-api.de/command_line.html.

Le correctif effectue au maximum trois tentatives pour Overpass, avec une attente de 15 secondes avant la deuxième, puis de 30 secondes avant la troisième. Les codes 429, 502, 503 et 504 ainsi que les erreurs de connexion peuvent être réessayés. Les erreurs permanentes et les redirections ne sont pas réessayées.

Si la troisième tentative échoue, l’erreur reste visible. Les observations des autres sources restent enregistrées et la tâche peut terminer avec le statut « Partiel ». Le correctif concerne l’enrichissement multi-sources des parcs.

## Installation sur ton Laragon

Ce correctif s’applique à ton installation v1.0.0 existante. Conserve les correctifs PHP, sauvegarde MySQL et timeout Cmder déjà installés.

1. Attends la fin des tâches en cours. Ouvre le terminal Laragon et exécute :

```bat
cd /d C:\laragon\www\coaster-world-data
STOP_DATA.bat
```

2. Décompresse `coaster-world-data_v1.0.0_fix_overpass_retry_2026-10-02.zip` directement dans `C:\laragon\www\coaster-world-data`. Accepte le remplacement des deux fichiers PHP en conservant leur arborescence : `app\...` et `tests\...` doivent se trouver directement à la racine du projet.

3. Dans le même terminal, exécute :

```bat
php artisan optimize:clear
START_DATA.bat
```

`START_DATA.bat` affiche l’état du système et attend une touche. Le redémarrage est nécessaire pour que les workers chargent le nouveau code.

L’installation utilise ta base MySQL existante. Aucune migration, modification du `.env` ou exécution d’`UPDATE_DATA.bat` n’est nécessaire pour ce correctif.

## Vérification sur le serveur

- Dans l’administration, ouvre la tâche d’enrichissement de Walibi Rhône-Alpes et clique une fois sur « Relancer ».
- Attends son résultat final : les tentatives Overpass peuvent ajouter environ une à deux minutes lorsque le service répond mal.
- Si Overpass répond pendant une tentative, sa ligne passe en succès et ses observations sont disponibles.
- Si Overpass reste indisponible, la ligne garde son erreur et les résultats des autres fournisseurs restent consultables. Évite d’empiler les relances pendant qu’une tâche est encore en cours.
- Vérifie ensuite les observations du parc avant de les valider comme données de référence.

## Fichiers et changements

- `app/Services/Enrichment/Collectors/OverpassParkCollector.php` : tentatives espacées et limitées sur les erreurs temporaires d’Overpass.
- `tests/Feature/ParkMultiSourceEnrichmentTest.php` : couverture de la récupération, de l’échec persistant, des erreurs permanentes, des redirections et d’une erreur de connexion.

## Validation effectuée

- 12 tests et 102 assertions réussis sur SQLite.
- 12 tests et 102 assertions réussis sur MariaDB 10.11.14, via le pilote Laravel MySQL.
- Vérification PHP et formatage Laravel Pint réussis.
- Les tests simulent les réponses HTTP et vérifient les attentes de 15 puis 30 secondes. Ils vérifient aussi l’absence de doublons et la conservation des observations des autres sources.

Le fonctionnement réel sur ton MySQL 8.4.3 et ton Windows Laragon se vérifie avec la relance ci-dessus ; ces deux environnements exacts n’ont pas été exécutés ici.

## Intégrité

`SHA256SUMS_FILES.txt`, dans l’archive, contient les empreintes des deux fichiers PHP et de ce guide. Le fichier fourni séparément `SHA256SUMS_fix_overpass_retry_2026-10-02.txt` contient l’empreinte SHA-256 de l’archive complète.
