D’abord, la vue d’ensemble depuis le répertoire d’installation :
./draften status # version, état des deux couleurs du web et des workers, HTTPS, dumps de la base
Puis plus en détail :
docker compose ps # les services tournent-ils, la base de données est-elle saine ?
docker compose logs --tail 50 worker # les dernières entrées du worker
docker compose run --rm worker node diag.mjs mailbox@company.com
La dernière commande fait la même chose que Tester la connexion dans l’interface : elle prend l’accès enregistré pour la boîte mail, obtient un jeton, affiche ses autorisations (jamais le jeton lui-même) et lit la boîte de réception.
Erreurs courantes
| Symptôme | Cause | Que faire |
|---|---|---|
set DB_PASSWORD in .env au démarrage | mots de passe de la base de données manquants | compléter .env |
mailbox … has no access yet | la boîte mail n’a ni inscription ni compte connecté | page de la boîte mail → Accès aux e-mails |
Graph … 401 … invalid_client | client secret erroné ou expiré | un nouveau secret au niveau de l’inscription, puis le test de connexion |
Graph … 403 … AppOnly AccessPolicy | la stratégie d’accès de l’application n’a pas encore pris effet, ou la boîte mail n’est pas dans le groupe | attendre (parfois des heures), refaire le test ; ajouter la boîte mail au groupe |
Graph … 403 … ErrorAccessDenied | consentement de l’administrateur manquant | dans Entra, Grant admin consent au niveau de l’inscription |
Category not added … MailboxSettings | l’autorisation MailboxSettings.ReadWrite manque ; l’étiquetage fonctionne, mais sans couleur | ajouter l’autorisation et donner le consentement |
No active assistant in the database | l’assistant est désactivé, ou les données initiales n’ont pas été créées | activer l’assistant ; consulter le journal de démarrage |
| l’assistant est ignoré (« no prompts yet ») | l’assistant n’a pas de consignes rédigées | terminer la mise en route, ou rédiger les consignes à la main |
Draft without signature / links outside the allowed domains | le brouillon a échoué à un contrôle | examiner le message – il peut s’agir d’une tentative d’usurpation |
Limit reached | la limite journalière ou par expéditeur | ne l’augmenter que si l’afflux d’e-mails est légitime |
Model refused to answer | le filtre de sécurité du modèle | traiter le message à la main |
Model exhausted max_iterations | le modèle a tourné en boucle dans ses outils | deux nouvelles tentatives sont faites ; si l’erreur revient, ajuster la consigne Tâche |
ECONNREFUSED … 3306 | la base de données est arrêtée ou pas encore démarrée | docker compose ps, docker compose logs db |
| le bandeau « La licence a expiré » ou « L’installation n’a pas de licence », les assistants ne rédigent rien | la licence manque ou a expiré | importer une licence valable – voir La licence |
| une mise à jour s’est terminée par une erreur | la nouvelle version n’est pas devenue saine ; la précédente continue de servir | l’erreur dans Demandes ou dans la sortie de ./draften update ; ./draften status |
Quand le journal ne suffit pas
- L’interface : Paramètres de l’assistant → Activité (relèves du courrier, demandes, événements) et la page Exploitation (workers, file d’attente, erreurs des dernières 24 heures).
- Après trois tentatives infructueuses, un message reçoit le statut en échec ; la dernière erreur figure dans son détail.
Un passage ponctuel à la main
docker compose run --rm worker node worker.mjs --dry-run
Cette commande passe une fois sur chaque assistant actif en forçant le mode d’essai – rien n’est écrit dans la boîte mail. Utile pour vérifier que tout fonctionne.
Quand vous avez besoin de notre aide
./draften diagnose
crée un fichier diagnose-<heure>.tar.gz contenant l’état de l’installation, les versions, la configuration sans les secrets et la fin des journaux. Envoyez-le-nous.
Avant d’envoyer le fichier, regardez son contenu : les journaux peuvent contenir des adresses et des objets des e-mails traités. Rien ne quitte le serveur de soi-même.