Mon instance Gladys était KO ce matin.
Le conteneur Gladys est bien en running mais ne réponds pas sur le port 80.
Tous mes autres conteneurs sur mon mini-pc fonctionnent (node-red, z2m…)
J’ai quelques erreurs dans les logs gladys qui reviennent assez fréquement : sudo docker logs Gladys
2024-04-09T04:50:48+0200 index.js:16 (process.) TypeError: Invalid value « undefined » for header « authorization »
at ClientRequest.setHeader (node:_http_outgoing:651:3
…
code: ‹ ERR_HTTP_INVALID_HEADER_VALUE ›
J’ai l’impression que c’est depuis un update déclenché par watchtower
sudo docker ps :
« 23 hours ago » correspond bien au moment ou je n’ai plus reçu de notification telegram de Gladys.
Qu’ai-je fait récemment sur Gladys ?
→ J’ai configuré une scène avec une action ‹ Attendre › de 24h (je doute que ça vienne de la)
J’ai bien entendu tenté le restart du conteneur gladys ainsi qu’un reboot de la machine complète mais le problème persiste. Gladys n’est pas accessible depuis d’autres devices.
je peux partager plus de logs si besoin.
Auriez-vous d’autres pistes de debug ? suis-je le seul à avoir ce comportement depuis un update ?
2024-04-09T04:50:48+0200 index.js:15 (process.) unhandledRejection catched: Promise {
TypeError: Invalid value « undefined » for header « authorization »
at ClientRequest.setHeader (node:_http_outgoing:651:3)
at new ClientRequest (node:_http_client:291:14)
at Object.request (node:https:366:10)
at RedirectableRequest._performRequest (/src/server/node_modules/follow-redirects/index.js:284:24)
at new RedirectableRequest (/src/server/node_modules/follow-redirects/index.js:66:8)
at Object.request (/src/server/node_modules/follow-redirects/index.js:523:14)
at dispatchHttpRequest (/src/server/node_modules/@gladysassistant/gladys-gateway-js/node_modules/axios/lib/adapters/http.js:202:25)
at new Promise ()
at httpAdapter (/src/server/node_modules/@gladysassistant/gladys-gateway-js/node_modules/axios/lib/adapters/http.js:46:10)
at dispatchRequest (/src/server/node_modules/@gladysassistant/gladys-gateway-js/node_modules/axios/lib/core/dispatchRequest.js:53:10)
at Axios.request (/src/server/node_modules/@gladysassistant/gladys-gateway-js/node_modules/axios/lib/core/Axios.js:108:15)
at Axios. [as get] (/src/server/node_modules/@gladysassistant/gladys-gateway-js/node_modules/axios/lib/core/Axios.js:129:17)
at Function.wrap [as get] (/src/server/node_modules/@gladysassistant/gladys-gateway-js/node_modules/axios/lib/helpers/bind.js:9:15)
at Object.get (/src/server/node_modules/@gladysassistant/gladys-gateway-js/lib/request.js:86:6)
at GladysGatewayJs.enedisGetDailyConsumption (/src/server/node_modules/@gladysassistant/gladys-gateway-js/index.js:1177:23)
at Gateway.enedisGetDailyConsumption (/src/server/lib/gateway/enedis/gateway.enedisGetDailyConsumption.js:17:56)
at recursiveBatchCall (/src/server/services/enedis/lib/enedis.sync.js:24:37)
at /src/server/services/enedis/lib/enedis.sync.js:92:32
at tryCatcher (/src/server/services/enedis/node_modules/bluebird/js/release/util.js:16:23)
at Object.gotValue (/src/server/services/enedis/node_modules/bluebird/js/release/reduce.js:166:18)
at Object.gotAccum (/src/server/services/enedis/node_modules/bluebird/js/release/reduce.js:155:25)
at Object.tryCatcher (/src/server/services/enedis/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/src/server/services/enedis/node_modules/bluebird/js/release/promise.js:547:31)
at Promise._settlePromise (/src/server/services/enedis/node_modules/bluebird/js/release/promise.js:604:18)
at Promise._settlePromiseCtx (/src/server/services/enedis/node_modules/bluebird/js/release/promise.js:641:10)
at _drainQueueStep (/src/server/services/enedis/node_modules/bluebird/js/release/async.js:97:12)
at _drainQueue (/src/server/services/enedis/node_modules/bluebird/js/release/async.js:86:9)
at Async._drainQueues (/src/server/services/enedis/node_modules/bluebird/js/release/async.js:102:5)
at Immediate.Async.drainQueues (/src/server/services/enedis/node_modules/bluebird/js/release/async.js:15:14)
at processImmediate (node:internal/timers:476:21) {
code: ‹ ERR_HTTP_INVALID_HEADER_VALUE ›
}
Je ne sais pas si c’est lié à mon crash mais j’essaye de trouver des infos
Au redémarrage du conteneur gladys, ces logs m’interpellent :
2024-04-10T20:40:42+0200 index.js:15 (process.) unhandledRejection catched: Promise {
TypeError: Cannot read properties of undefined (reading ‹ substr ›)
at /src/server/lib/scene/scene.addScene.js:45:47
at Array.forEach ()
at SceneManager.addScene (/src/server/lib/scene/scene.addScene.js:36:20)
at /src/server/lib/scene/scene.init.js:22:10
at Array.map ()
at SceneManager.init (/src/server/lib/scene/scene.init.js:20:30)
at Object.start (/src/server/lib/index.js:150:9)
at /src/server/index.js:51:3
}
2024-04-10T20:40:42+0200 index.js:16 (process.) TypeError: Cannot read properties of undefined (reading ‹ substr ›)
at /src/server/lib/scene/scene.addScene.js:45:47
at Array.forEach ()
at SceneManager.addScene (/src/server/lib/scene/scene.addScene.js:36:20)
at /src/server/lib/scene/scene.init.js:22:10
at Array.map ()
at SceneManager.init (/src/server/lib/scene/scene.init.js:20:30)
at Object.start (/src/server/lib/index.js:150:9)
at /src/server/index.js:51:3
Je doute que ce soit lié à une scène que j’ai faite récemment avec une action « Wait » de 24h, on aurait plus de log que ça non ?
Effectivement, cela venait bien d’une scène programmée tous les mois sans heure (oublie de ma part).
J’ai supprimé la scène en base de données et mon instance fonctionne correctement, merci
Des infos sur le bug pour un correctif :
On a bien un message d’erreur quand un sauvegarde avec un trigger mensuel sans l’heure : « Une erreur s’est produite lors de l’enregistrement de votre scène. Veuillez vérifier que toutes les actions / déclencheurs sont remplis et corrects. » mais ça enregistre quand même la scène et on peut sortir sans problème de la page d’édition de la scène.
Le crash de l’instance se produit lorsque la scène se lance en mode programmé
On pourrait mettre une heure par défaut si pas renseigné (par exemple 00h00)
Ou bloquer la sortie de l’édition de la scène si erreur mais ça me semble un peu plus complexe à mettre en place
Solution possible : pouvoir sauvegarder les scènes qui sont en erreur, mais qu’elles ne puissent pas etre activées.
=> Message d’erreur lors de la sauvegarde et a chaque tentative d’activation par le curseur (donc sur le Dashboard, dans la vue Scene et dans la vue Edition de scène)
Raison : il peut etre intéressant de pouvoir preparer une scène