Skip to content

AttributeError: 'EDApiClient' object has no attribute 'ed_client' après résolution du blocage QCM — présent en v1.1.11 et v1.1.13 #255

Description

@Matos2222

Version de Home Assistant

Méthode d'installation
Home Assistant OS
Core
2026.7.2
Supervisor
2026.07.3
Operating System
17.3
Interface utilisateur
20260624.5

Version de l'intégration

v1.1.11 et v1.1.13

Etat du système

No response

Checklist

  • J'ai activé la journalisation de débogage pour mon installation.
  • J'ai rempli le modèle de rapport de ticket du mieux que j'ai pu.
  • Ce ticket ne contient qu'un seul problème (si vous avez plusieurs problèmes, veuillez ouvrir un ticket distinct pour chaque problème).
  • Ce problème n'est pas un doublon d'un problème précédent..

Décrire le problème

Après avoir résolu un premier blocage QCM (QCMException: Vérifiez le qcm de connexion, le nombre d'essais est épuisé) en nettoyant le fichier ecoledirecte_qcm.json pour ne garder qu'une seule réponse correcte par question (format vérifié correct : liste à un seul élément par question, valeurs identiques aux propositions d'origine), l'intégration ne remonte plus l'erreur QCM mais échoue systématiquement avec une nouvelle erreur à chaque tentative du coordinator.
L'entrée de configuration passe en état setup_retry avec la raison : 'EDApiClient' object has no attribute 'ed_client'.
Le bug est reproductible à 100%, sur plusieurs tentatives, avec le debug logging complet activé (custom_components.ecole_directe: debug, ecoledirecte_api: debug) — sans qu'aucun détail supplémentaire sur l'exception réelle n'apparaisse.
J'ai testé un downgrade vers la v1.1.11 : le bug est identique, donc ce n'est pas une régression de la v1.1.13.

Le message "Unknow error on login" (log critique, coordinator/base.py:167) n'affiche jamais l'exception réelle levée pendant login() — même en debug complet — ce qui empêche de diagnostiquer plus loin côté utilisateur. L'exception semble survenir avant que self.ed_client soit assigné dans EDApiClient.aenter/constructeur, ce qui casse ensuite close() dans aexit.
Ce pattern rappelle l'issue #144 (conn_state.cn resté à None), mais dans le coordinator plutôt que le config_flow, et présent sur au moins 2 versions (v1.1.11, v1.1.13).

Étapes de reproduction

Intégration bloquée par un QCMException (essais épuisés)
Édition du fichier ecoledirecte_qcm.json pour ne laisser qu'une seule réponse (format liste à un élément) par question
Rechargement de la config entry
L'erreur QCM disparaît, mais le login échoue silencieusement et provoque une AttributeError au nettoyage — reproductible en v1.1.11 et v1.1.13

Debug logs

2026-07-16 23:41:36.211 DEBUG (MainThread) [custom_components.ecole_directe] loading QCM file
2026-07-16 23:41:36.212 CRITICAL (MainThread) [custom_components.ecole_directe] Unknow error on login
2026-07-16 23:41:36.212 ERROR (MainThread) [custom_components.ecole_directe] Unexpected error fetching ecole_directe data
Traceback (most recent call last):
  File "/config/custom_components/ecole_directe/coordinator/base.py", line 153, in _async_update_data
    async with EDApiClient(
    ...
  File "/config/custom_components/ecole_directe/api/client.py", line 143, in __aexit__
    await self.close()
  File "/config/custom_components/ecole_directe/api/client.py", line 147, in close
    if self.ed_client is not None:
       ^^^^^^^^^^^^^^
AttributeError: 'EDApiClient' object has no attribute 'ed_client'

2026-07-16 23:41:36.213 INFO (MainThread) [custom_components.ecole_directe] Config entry 'timeo06' for ecole_directe integration not ready yet: 'EDApiClient' object has no attribute 'ed_client'; Retrying in 5 seconds

Diagnostics dump

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions