TypeScript 98.3%
CSS 0.9%
Shell 0.7%
1# Dépannage — Immbot AI23| Symptôme | Cause probable | Solution |4|---|---|---|5| « Impossible de charger les modèles » dans le chat | `OPENROUTER_API_KEY` absente/invalide | Renseigner la clé dans `.env`, redémarrer ; tester : `curl -H "Authorization: Bearer $KEY" https://openrouter.ai/api/v1/models` |6| Le chat répond toujours « Je ne trouve pas une réponse… » | Ingestion non faite ou vide | `pnpm ingest` ; vérifier Admin → Cours & contenu (≈ 2 000 fragments) |7| Première ingestion très lente | Téléchargement du modèle d'embeddings (~120 Mo) | Normal une seule fois (cache `data/models/`) |8| `mutex lock failed` en fin de script | Nettoyage onnxruntime à la sortie du processus | Bénin — n'affecte ni le serveur ni les données |9| Erreur 429 « budget atteint » | Plafonds d'usage | Admin → Paramètres (budgets) ou attendre le lendemain |10| « Le modèle X n'accepte pas les images » | Modèle sans vision | Choisir le préréglage « Meilleur pour les images » |11| Connexion refusée après plusieurs essais | Rate-limit 8 échecs/15 min | Attendre le délai indiqué |12| Bannière ambre persistante en haut | Compte admin d'amorçage encore actif | Créer un compte personnel puis désactiver `admin` (et `DISABLE_INITIAL_ADMIN=true`) |13| Réponses sans citations en mode Cours | Le modèle ignore la consigne (rare) ou balises invalides neutralisées | Vérifier Admin → Vue générale (citations invalides) ; changer de modèle ; les balises inventées sont supprimées par conception |14| Port 3070 occupé | Autre instance | `lsof -i :3070` puis arrêter, ou changer le port dans package.json |15| Base corrompue / à repartir | — | Arrêter, restaurer `backups/…` (ou supprimer `data/immbot.db` puis `pnpm seed && pnpm ingest` — les données étudiantes sont alors perdues) |16| Type d'erreur `SyntaxError … .ts` dans les scripts | Node < 24 | Utiliser Node ≥ 24 (type stripping natif) |1718## Journaux utiles1920- Serveur : sortie standard (PM2 : `pm2 logs immbot-ai`).21- Sécurité : Admin → Sécurité (journal des connexions).22- Ingestion : Admin → Cours & contenu (rapport par exécution) et `docs/ingestion-report.md`.23- Coûts/erreurs API : Admin → Vue générale.24