3.2 KiB
Veille Dr. Nexum — VK Bifrost morte + fuseau n8n (14/07/2026)
Symptôme
Veille « 3x/jour » (workflow n8n Eh2nomLhSuL3iUMp) : tous les résumés = « Résumé indisponible » sur Telegram et mail ; mail Pro TT non reçu ; en parallèle des mails « par tranche » (liens titre+date sans analyse).
Root causes
- VK Bifrost morte. Purge du 07/07 → rotation de la VK « Nabil-Key ». Le nœud Code
🌐 Traduire + Telegram + Build Emailavaitbfk-e5832bfe…codée en dur → Bifrost401 virtual_key_not_found→ chaque résumé = fallback « Résumé indisponible ». - Fuseau n8n.
GENERIC_TIMEZONEVIDE → cron interprétés enAmerica/New_York. Le cron6/11/19tournait à 11h/16h/00h Tunis, jamais 7/12/20. - Système parallèle.
veille_ia_matin.py(hermes-nyora) lancé par tâche DSM Task Scheduler (root) à 07h → digest brut « par tranche » + Telegram 07h. Redondant depuis fusion des sources dans n8n.
Bonne VK
Dans /volume1/docker/bifrost/data/config.db (sqlite, table governance_virtual_keys) : 2 VK actives = Nabil-Key + Yesmine-Key. Testée sur http://bifrost:8080/v1/chat/completions (header x-bf-vk) → 200. Le restart Bifrost NE recrée PAS une VK absente (≠ bug cache).
n8n 2.23 — piège de versionnage (CENTRAL)
Le runtime exécute la version ACTIVE stockée dans workflow_history (pointée par workflow_entity."activeVersionId"), pas le brouillon workflow_entity. workflow_published_version vide pour ce wf. Éditer workflow_entity seul ne change rien à ce qui tourne ; publish_workflow (MCP) renvoyait le même activeVersionId sans propager l'édition directe DB. → corriger AUSSI la ligne workflow_history de l'activeVersionId.
Correctif (byte-exact, Postgres n8n)
Colonnes nodes/settings/connections = json (pas jsonb). Caster ::json ; settings via (settings::jsonb || '{"timezone":"Africa/Tunis"}'::jsonb)::json. Remplacements : VK morte→active, 30 sources→44 sources, cron 6/11/19→7/12/20, ajout settings.timezone=Africa/Tunis. Appliquer sur workflow_entity ET sur workflow_history WHERE "versionId"=<activeVersionId>. Puis docker restart n8n. Le ScheduleTrigger prend le fuseau du workflow (settings.timezone) → corrige CE wf sans toucher au global ni aux autres.
Validation (exécution production 32346)
Bifrost : que des HTTP 200 (7–17 s/item, reasoning). Données : 0 « Résumé indisponible », 0 « virtual key not found », footer « 44 sources ». SMTP ik.me : 2 nœuds → 250 Ok: queued (Gmail + tunisietelecom.tn), ~37 Ko.
Reste (accès root/DSM de Nabil)
- Désactiver la tâche DSM 07h qui lance
veille_ia_matin.py(source des mails « par tranche » + Telegram 07h). Le pipeline n8n couvre désormais 07h → pas de perte. - Mail Pro : ik.me accepte (250) ; si non-reçu = côté TT (spam/filtrage expéditeur
@ik.me) → whitelister / vérifier spam.
Sécurité
Clés provider Bifrost exposées en clair pendant le diag (config.json) → roter : openrouter, opencode, google (×2). Nouvelle VK aussi passée en clair dans la session → rotation ultérieure recommandée (elle est fonctionnelle, donc session dédiée).