En attendant, je pense avoir identifié le bug.
Dans Gladys Assistant 4.56, j’ai introduit une nouvelle logique d’authentification sur les Websockets, permettant une connexion plus rapide: idéal pour un accès instantané au tableau de bord sur mobile.
Le problème ? Si l’instance perd la connexion, elle tente de se reconnecter avec le même access_token utilisé lors de la première connexion. Sauf que cet access_token a expiré entre-temps et n’est pas renouvelé. J’utilise une nouvelle logique présente dans la librairie socket-io et je n’avais pas compris son fonctionnement en cas de déconnexion.
Résultat : le backend Gladys Plus rejette la connexion (JWT expiré), et l’instance entre dans une boucle infinie de reconnexion.
C’est une bonne leçon, et quelques pistes d’améliorations :
-
Renouveler l’access_token en cas de perte de connexion pour repartir sur un jeton valide.
-
Ajouter un délai avant la reconnexion, afin d’éviter de surcharger le serveur en cas de boucle infinie.
-
Renforcer les tests unitaires pour mieux couvrir les scénarios de perte de connexion et éviter que ce bug ne se reproduise.
Désolé pour le dérangement !
Je vous tiens informés dès que la version 4.56.1 est disponible