annuaire-entreprises-data-gouv-fr/site

[Server component][Critique] Complete crash

Closed this issue · 5 comments

En appelant la page https://annuaire-entreprises.data.gouv.fr/dirigeants/952592434

Crash complet de l'app

Image

Pour reproduire, tester de simuler un timeout du RNE

Pour reproduire, tester de simuler un timeout du RNE

Je n'ai pas réussi à reproduire en simulant un timeout, que ce soit en dev ou en version buildée. Toujours rien sur sentry. Je n'ai plus accès à Kibana, mais dès que je le récupère, je vérifie pour voir si il y a des logs associés.

Aucune 500 n'est logguée sur la page /dirigeant côté serveur sur Kibana.
https://kibana.recherche-entreprises.infra.api.gouv.fr/app/dashboards#/view/787555e0-ae01-11ee-8102-7dc814269829?_g=h@37b5e18

On a donc une erreur fantôme, qui n'apparait ni dans Sentry, ni sur Kibana.

La seule explication qui me parait satisfaire tous les paramètres serait qu'il sagit d'une erreur 100% front, qui arrive lorsque :

  • Le module React + Webpack + Next est chargé
  • Le module d'erreur custom ne l'est pas (erreur de connectivité)
  • L'erreur de connectivité est côté client (le serveur voit que le client a interrompu la connexion).
    Par conséquent, la page d'erreur « standard » s'affiche.

Bon, je reviens sur ce que j'ai dit. En fait, les erreurs sont remontées dans Sentry. Il s'agit des erreurs Connection Closed.
https://errors.data.gouv.fr/organizations/sentry/issues/138691/events/d9bdcde590774ec3ab16e87314046e77

Il y en a une centaine par jour, avec une augmentation depuis le merge de la PR Async server component.

Par ailleurs, j'ai compris comment fonctionnaient les async server component. Ils sont streamés dans des balises <script> présentes à la fin du HTML. D'où le fait que l'indicateur de chargement s'affiche dans l'onglet.

Je continue mes investigations / reflexions.

EDIT : une piste serait une mise en prod pendant que la page charge, résultant en une connection error. Il suffirait alors de recharger la page à ce moment-là côté client. À vérifier.