# Gladys plus suspendu

**URL:** <https://community.gladysassistant.com/t/gladys-plus-suspendu/10846>\
**Category:** Gladys Plus\
**Created:** [Septembre 9, 2026, 12:26 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846 "2026-09-09T12:26:40Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Husky14](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/husky14/32/20824_2.png) [@Husky14](https://community.gladysassistant.com/u/Husky14)\
**Post date:** [Septembre 9, 2026, 12:26 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/1 "2026-09-09T12:26:40Z")

</div>

Bonjour à tous,

«&nbsp;Gladys plus suspendu.&nbsp;» =\> ma tablette maison ne fonctionne plus

" **Gladys Plus indique toujours qu’un paiement est requis"**

Dans stripe : "abonnement en cours

Fin de l’essai gratuit 14 sept."

Je ne comprends pas ☹

---

<div class="post-metadata">

**Author:** ![Husky14](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/husky14/32/20824_2.png) [@Husky14](https://community.gladysassistant.com/u/Husky14)\
**Post date:** [Septembre 9, 2026, 12:28 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/2 "2026-09-09T12:28:00Z")

</div>

J’ai le choix de soit modifier l’abonnement, soit l’annuler.

Dois je l’annuler pour en relancer un autre ?

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Septembre 9, 2026, 12:35 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/3 "2026-09-09T12:35:33Z")

</div>

Je ne pense pas qu’il faille faire ça…! Par contre je t’avoue que je suis incapable de te répondre pour le coup.

@pierre-gilles tu es déjà parti en vacances??? 😉

---

<div class="post-metadata">

**Author:** ![Husky14](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/husky14/32/20824_2.png) [@Husky14](https://community.gladysassistant.com/u/Husky14)\
**Post date:** [Septembre 9, 2026, 5:00 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/4 "2026-09-09T17:00:48Z")

</div>

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/f/4/f4a319b587c6be24fd127841b377c478f252b60f.png)

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 16, 2026, 4:16 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/5 "2026-09-16T16:16:33Z")

</div>

Salut @Husky14,

Désolé pour la frayeur, et merci d’avoir remonté le problème avec la capture, ça m’a permis de trouver la cause rapidement.

Ton abonnement n’a jamais eu de problème : Stripe avait bien ton essai en cours, et il n’y avait rien à annuler ou à relancer. Le bug venait de Gladys 5.0.4, qui a introduit un nouveau mécanisme : quand Gladys Plus refuse un appel pour cause de « paiement requis », l’instance met en pause les fonctionnalités Plus et affiche ce bandeau rouge. Sauf que le serveur Gladys Plus renvoyait exactement la même réponse dans un autre cas, sans rapport avec un paiement : quand une instance demande une fonctionnalité qui n’est pas incluse dans sa formule (par exemple les sauvegardes, réservées à la formule Plus). Comme Gladys vérifie chaque nuit la liste des sauvegardes, ton instance s’est verrouillée toute seule, et le bouton « Vérifier l’abonnement » refaisait le même appel, donc impossible d’en sortir.

Le correctif est fait côté serveur Gladys Plus, il n’y a rien à mettre à jour de ton côté. Une fois déployé, le bandeau disparaîtra à la prochaine vérification automatique (chaque nuit vers 2h), ou immédiatement en cliquant sur « Vérifier l’abonnement » dans Paramètres \> Gladys Plus. Tout le reste (accès à distance, tablette, etc.) n’a jamais été coupé : seul le bandeau, et les fonctionnalités Plus déjà hors de ta formule, étaient concernés.

Et merci beaucoup d’être passé à l’abonnement payant malgré ce faux départ. C’est ce soutien qui permet à Gladys de continuer à avancer, ça compte vraiment. 🙏

---

<div class="post-metadata">

**Author:** ![Husky14](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/husky14/32/20824_2.png) [@Husky14](https://community.gladysassistant.com/u/Husky14)\
**Post date:** [Septembre 21, 2026, 10:00 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/6 "2026-09-21T10:00:42Z")

</div>

Bonjour Pierre-gilles,

En effet, toutes les fonctionnalités de Gladys plus ont continué de fonctionner et c’est encore le cas.

Parc contre, je n’arrive pas en enlever le bandeau rouge en bas à gauche.

Dans «&nbsp;vérifier l’abonnement&nbsp;» j’ai l’image ci dessous et Gladys est à jour.

Merci pour ton aide 😉

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/8/4/84f0328b58ff8598ad1ef2e5f6058a30453a3631.png)

---

<div class="post-metadata">

**Author:** ![cursor-bot](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cursor-bot/32/22252_2.png) [@cursor-bot](https://community.gladysassistant.com/u/cursor-bot)\
**Post date:** [Septembre 21, 2026, 12:18 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/7 "2026-09-21T12:18:58Z")

</div>

Salut tout le monde !

Ce sujet est désormais **en cours de développement**.

Une PR a été ouverte pour lever le verrou Gladys Plus laissé par le bug 402 du plan Lite :

> <https://github.com/GladysAssistant/Gladys/pull/3117>
>
> \### Description
> 
> Gladys 5.0.4 locks the Gladys Plus features of the instance (an…d shows the red "payment required" banner) when Gladys Plus answers 402, and the lock is only lifted by a successful \`GET /backups\`. Until Gladys Plus 1.4.0, a \*\*Lite\*\* account got the same 402 on that route because its plan does not include backups, so every Lite instance locked itself on its nightly backup check — and could never unlock, since a Lite account can never list the backups. The server now answers 403 in that case (GladysAssistant/gladys-gateway#234), which stops new locks but leaves the already-locked instances stuck.
> 
> \- \*\*Migration\*\* \`20260921000000-clear-gladys-plus-payment-lock\`: drops \`GLADYS\_GATEWAY\_PAYMENT\_REQUIRED\_SINCE\` once, so the affected instances start unlocked after the update. Every plan-gated route of Gladys Plus is behind \`checkUserPlan('plus')\` with the plan checked before the status, so a Lite account can no longer receive a 402; a Plus subscription really unpaid is locked again by its next plan-gated call (at the latest the 2am backup check).
> \- \*\*\`gateway.checkIfBackupNeeded\`\*\*: a 403 on the backup list (plan without backups) is now logged and skipped like an unpaid subscription, instead of throwing an \`Error403\` every night on every Lite instance (ended up as an \`unhandledRejection\` error line in the logs).
> 
> \### Related request
> 
> Forum: https://community.gladysassistant.com/t/gladys-plus-suspendu/10846
> 
> \### Checklist
> 
> \- \[x\] If a forum topic or GitHub issue exists, the description links it (\`Forum: https://community.gladysassistant.com/t/...\` or \`Closes #...\`)
> \- \[x\] Tests pass: \`cd server && npm run coverage\` (Codecov requires 100% coverage on changed lines) and Cypress (\`npm run cypress:run\`) if the UI changed — migration and gateway tests run locally (the \`gateway.backup\` / \`restoreBackup\` suites time out in my environment with or without this change, sqlite3/duckdb CLI missing); no UI change
> \- \[x\] Linter and prettier pass on both front and server (\`npm run eslint\`, \`npm run prettier\`)
> \- \[x\] No undocumented breaking change
> 
> 🤖 Generated with \[Claude Code\](https://claude.com/claude-code)
> 
> https://claude.ai/code/session\_0158AmQ2wR3hrkfvKJPvaT44
> 
> \---
> \_Generated by \[Claude Code\](https://claude.ai/code/session\_0158AmQ2wR3hrkfvKJPvaT44)\_

N’hésitez pas à suivre la PR, à tester (optionnel, surtout pour les petites demandes) et à faire vos retours ici si besoin.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 21, 2026, 12:26 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/8 "2026-09-21T12:26:08Z")

</div>

Salut @Husky14,

Merci pour le retour, et désolé : je m’étais trompé dans mon message précédent en te disant que le bandeau partirait tout seul. Le correctif côté serveur empêche bien le problème de se reproduire, mais il ne suffit pas à débloquer une instance déjà verrouillée. Une fois le bandeau affiché, Gladys ne le retire que si Gladys Plus lui confirme l’abonnement via la liste des sauvegardes, or ta formule n’inclut pas les sauvegardes, donc cette confirmation ne peut jamais arriver. C’est pour ça que « Vérifier l’abonnement » ne change rien : le bouton refait exactement le même appel.

Le correctif est maintenant côté Gladys, dans la prochaine mise à jour : elle retire ce verrou au démarrage, et le bandeau disparaîtra dès l’installation. Rien à faire de ton côté d’ici là, et pas la peine de recliquer sur « Vérifier l’abonnement ». Comme tu l’as constaté, tout le reste fonctionne normalement.

Encore merci d’avoir insisté, ça m’a permis de voir que le premier correctif était incomplet !

---

<div class="post-metadata">

**Author:** ![Husky14](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/husky14/32/20824_2.png) [@Husky14](https://community.gladysassistant.com/u/Husky14)\
**Post date:** [Septembre 25, 2026, 5:58 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/9 "2026-09-25T05:58:16Z")

</div>

Bonjour,

J’ai toujours le même problème d’affichage. Je me suis aperçu qu’une maj était disponible. Je dois passer de la 5.0.4 en 5.1.1 mais cela ne marche pas ☹

" **Opérations**

#### **Gladys v5.1.1 est disponible**

Gladys se mettra à jour automatiquement si vous utilisez Watchtower. Si vous voulez mettre à jour manuellement, cliquez sur le bouton ci-dessous. Cela lancera un container Watchtower qui mettra à jour uniquement le container Gladys, les autres containers de cette machine ne seront pas touchés.

Aucune mise à jour n’a été appliquée : Watchtower n’a trouvé aucune nouvelle image pour « gladysassistant/gladys:v4 ». Réessayez dans quelques minutes, la nouvelle image n’est peut-être pas encore disponible pour votre architecture. J’ai redémarré Gladys ça ne marche pas non plus.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 25, 2026, 7:41 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/10 "2026-09-25T07:41:40Z")

</div>

Salut @Husky14,

Merci pour le retour ! Pour le bandeau, c’est normal qu’il soit toujours là : le correctif est dans la 5.1.x, et tu es encore en 5.0.4. Dès que la mise à jour passera, il disparaîtra.

Pour la mise à jour, j’ai vérifié : l’image `gladysassistant/gladys:v4` est bien à jour sur Docker Hub (elle pointe sur la 5.1.1 depuis le 22 septembre, pour ton architecture aussi). Le problème ne vient donc pas de là, malgré ce que dit le message. Je pense plutôt que Watchtower n’a pas réussi à télécharger l’image, et dans ce cas Gladys affiche à tort « aucune nouvelle image » (je vais corriger ce message).

Pour trouver la vraie cause, tu peux te connecter en SSH sur la machine qui fait tourner Gladys et lancer :

```auto
df -h
docker pull gladysassistant/gladys:v4

```

- Si `df -h` montre un disque presque plein, tu peux libérer de la place avec `docker image prune -a` (ça supprime les images Docker inutilisées, pas tes données), puis relancer le `docker pull`.
- Si le `docker pull` affiche une erreur (`toomanyrequests`, `no space left on device`, erreur réseau…), copie-la ici.

Une fois le `docker pull` réussi, tu peux relancer la mise à jour depuis Paramètres \> Système. Si ça bloque encore, tu peux la faire à la main :

```auto
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower:1.20.2 --run-once --cleanup gladys

```

(remplace `gladys` par le nom de ton conteneur si besoin, visible avec `docker ps`).

Sinon, si tu as vu des lignes de log s’afficher sous le message d’erreur après avoir cliqué sur « Mettre à jour », une capture m’aiderait aussi.

Tiens-moi au courant !

---

<div class="post-metadata">

**Author:** ![Husky14](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/husky14/32/20824_2.png) [@Husky14](https://community.gladysassistant.com/u/Husky14)\
**Post date:** [Septembre 25, 2026, 7:55 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/11 "2026-09-25T07:55:40Z")

</div>

Ca y est, c’est bon, plus d’une heure de dépannage avec l’IA, plusieurs de ligne de commande dans docker pour résoudre le problème.

En effet tu avais vu juste, partition pleine qui empêcher la mise à jour.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Septembre 25, 2026, 8:02 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/12 "2026-09-25T08:02:30Z")

</div>

Top, je vais faire évoluer le message dans Gladys pour que ça reflète la vrai erreur parce que là c’est pas clair 😃

Merci du retour !

---

<div class="post-metadata">

**Author:** ![cursor-bot](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cursor-bot/32/22252_2.png) [@cursor-bot](https://community.gladysassistant.com/u/cursor-bot)\
**Post date:** [Septembre 25, 2026, 8:14 UTC](https://community.gladysassistant.com/t/gladys-plus-suspendu/10846/13 "2026-09-25T08:14:59Z")

</div>

Salut tout le monde !

Ce sujet est désormais **en cours de développement**.

Une PR a été ouverte pour afficher la vraie erreur Docker quand la mise à jour Gladys n’arrive pas à télécharger l’image :

> <https://github.com/GladysAssistant/Gladys/pull/3131>
>
> \### Description
> 
> A user on 5.0.4 could not upgrade to 5.1.1: the in-app upgrade …kept answering \*"No update was applied: Watchtower did not find any new image for \`gladysassistant/gladys:v4\`. Try again in a few minutes, the new image may not be published yet for your architecture."\* The \`v4\` tag had pointed to 5.1.1 (amd64 + arm64) for three days. The real cause was a \*\*full disk\*\*, which only came out after an hour of manual Docker debugging.
> 
> \*\*Why Gladys could not see it.\*\* Docker answers \`200\` as soon as a pull starts, and a failure during the download (\`no space left on device\`, lost connection…) is only an \`{"error": …}\` event inside the progress stream. Two layers ignored those events:
> 
> \- \*\*Watchtower\*\* (\`nickfedor/watchtower\` 1.20.2, \`pkg/container/image.go\` → \`performImagePull\`) reads the pull response with \`io.ReadAll\` without decoding it. The pull "succeeds", the local tag still points to the running image, and Watchtower logs \`No new image found\` at debug level and exits 0. Nothing at info level, so parsing Watchtower's logs cannot detect it.
> \- \*\*\`system.pull\`\*\* relies on docker-modem's \`followProgress\`, which never rejects on those \`error\` events either (checked in \`docker-modem\` 3.0.6). So \`system.pull\` resolved on a failed download.
> 
> \*\*Changes\*\*
> 
> \- \*\*\`system.pull\`\*\* now rejects when the progress stream contains an \`error\` event, using \`errorDetail.message\` (or \`error\`) as the message.
> \- \*\*\`system.installUpgrade\`\*\* downloads the Gladys image itself before starting Watchtower:
> - On failure it reports \`NOT\_ENOUGH\_DISK\_SPACE\` (the Docker message contains \`no space left on device\`) or \`IMAGE\_PULL\_FAILED\`, with the image and Docker's message, and does not start Watchtower.
> - Watchtower then finds the image already on the disk and recreates the container as before. Its own pull is a no-op, so no extra disk space is used.
> - The pull runs under the same 15 min timeout as the Watchtower wait, so a stalled download cannot leave the UI waiting forever. It reports \`WATCHTOWER\_TIMEOUT\`, and a late rejection is swallowed.
> - The timeout logic is factored into a \`waitAtMost\` helper shared by both waits.
> - A \`Downloading \<image\>...\` line is sent to the upgrade log panel, because the download can take minutes on a Raspberry Pi.
> \- \*\*Front\*\*: new \`IMAGE\_PULL\_FAILED\` / \`NOT\_ENOUGH\_DISK\_SPACE\` translations in the 4 languages. The disk message suggests freeing space with \`docker image prune -a\` and explains what it removes. Docker's \`message\` is passed to the alert.
> \- \*\*Side effect on integrations\*\*: \`ensureImage\` (external integrations) and the built-in services that call \`system.pull\` (mqtt, zigbee2mqtt, node-red, matterbridge) now also fail when a download breaks mid-way. Before this PR they carried on with whatever image was already on the disk. This matches the "pull or fail" rule of the external-integrations spec. \`docs/specs/external-integrations/core/supervisor.md\` is updated in this diff to say so.
> 
> \### Related request
> 
> Forum: https://community.gladysassistant.com/t/gladys-plus-suspendu/10846
> 
> \### Checklist
> 
> \- \[x\] If a forum topic or GitHub issue exists, the description links it (\`Forum: https://community.gladysassistant.com/t/...\` or \`Closes #...\`)
> \- \[x\] Tests pass: \`cd server && npm run coverage\` passes. \`system.installUpgrade.js\` and \`system.pull.js\` are at 100% lines and branches. No Cypress run, since the only UI change is the text of an existing error alert.
> \- \[x\] Linter and prettier pass on both front and server (\`npm run eslint\`, \`npm run prettier\`). \`compare-translations\` and the front \`npm run build\` pass too.
> \- \[x\] No undocumented breaking change
> 
> 🤖 Generated with \[Claude Code\](https://claude.com/claude-code)
> 
> https://claude.ai/code/session\_01KpuN3jFfPiGrYL7UoqBntC
> 
> \---
> \_Generated by \[Claude Code\](https://claude.ai/code/session\_01KpuN3jFfPiGrYL7UoqBntC)\_

N’hésitez pas à suivre la PR, à tester (optionnel, surtout pour les petites demandes) et à faire vos retours ici si besoin.
