La plupart des problèmes de Crew ont un correctif qui se résume à une commande shell. Cette page est un guide de tri. Commencez par une vérification de l'état :
kirocrew doctor
doctor rapporte l'état de chaque sous-système : détection du binaire kiro-cli, authentification de l'agent, modèle d'incorporation, jetons Slack, validité de la configuration et sondes de serveur MCP. S'il signale un problème, passez à la section correspondante ci-dessous.
Le répertoire cible de l'installation n'est pas dans votre PATH. Les correctifs dépendent de l'installateur :
pipx lorsqu'il est disponible, sinon ~/.kiro/crew/venv. Assurez-vous que ~/.local/bin (valeur par défaut de pipx) ou ~/.kiro/crew/venv/bin figure dans PATH.pip install -e . — assurez-vous que le répertoire des scripts de votre Python figure dans PATH. Habituellement ~/.local/bin (installation utilisateur) ou le bin/ du venv.docker exec kirocrew kirocrew ….Puis source ~/.bashrc (ou redémarrez votre shell).
Sur Windows, utilisez python et py depuis un venv :
py -3.12 -m venv .venv .venv\Scripts\activate pip install -e . tzdata python -m kiro_crew gateway
tzdata est requis — Windows ne fournit aucune base de données de zones IANA, donc zoneinfo.ZoneInfo(...) échoue sans elle.
Le point d'entrée a sondé le bac à sable interne de l'espace de noms utilisateur Linux et cela a échoué sous la politique seccomp/AppArmor de l'environnement d'exécution du conteneur. Deux options :
--security-opt seccomp=<profil autorisant unshare/clone>. La passerelle sonde à nouveau au prochain démarrage et active le bac à sable.-e KIROCREW_ALLOW_UNSANDBOXED=1. Les commandes de l'agent s'exécutent sans le bac à sable interne; le conteneur reste la seule limite d'isolation.La sortie du journal au démarrage indique quelle posture a été choisie.
Le backend de l'agent n'a pas répondu à la prise de contact. Causes courantes :
kiro-cli n'est pas installé — la page Set up Kiro du tableau de bord vous guide, ou kirocrew doctor signale un binaire manquantkiro-cli loginkirocrew setup --agent-only --clean reconstruit l'agent à partir de zéroLe processus kiro-cli s'est arrêté brusquement. Crew récupère automatiquement en recréant la session et en réessayant. Si cela se répète :
kirocrew logs -f pour l'erreur sous-jacenteagent.max_subagents) ou augmentez la mémoire de l'hôteLe répertoire de projet actif n'est pas défini. Vérifiez avec kirocrew config get project_dir, ou définissez-le dans l'en-tête de session du tableau de bord.
Si le CWD est défini mais que l'agent ne peut toujours pas lire un chemin particulier, consultez le bac à sable du SE — certains chemins sont masqués dans les modes auto et strict.
kirocrew doctor signale si l'environnement d'exécution groupé a téléchargé le modèleexport KIROCREW_EMBED_MODEL_URL=<url>ollama pull qwen3-embedding:0.6b et vérifiez curl http://localhost:11434/api/tagsJusqu'à ce que le modèle arrive, la mémoire se replie sur la recherche par mots-clés (LIKE sur le texte + les balises). L'agent continue de fonctionner — simplement sans classement sémantique.
Le memory.db restauré est corrompu. Habituellement un problème de copie (transfert interrompu). Essayez :
kirocrew restore snapshot.tar.gz --mode replace --dry-run # preview kirocrew restore snapshot.tar.gz --mode replace --components memory
Si cela échoue toujours, l'instantané lui-même est défectueux. Restaurez à partir d'un instantané plus ancien ou importez manuellement memory.db depuis une autre source.
df -h ~/.kiro/crew; SQLite échoue silencieusement à l'écriture lorsque le disque est pleinSlack est optionnel — le tableau de bord fonctionne sans lui. Si vous voulez utiliser Slack :
cat ~/.kiro/crew/.env devrait afficher SLACK_APP_TOKEN=xapp-…, SLACK_BOT_TOKEN=xoxb-…, KIROCREW_OWNER_ID=U0…kirocrew setup — l'assistant demande les deux jetonskirocrew doctor signale l'état de la connexion SlackKIROCREW_OWNER_ID. Seul votre identifiant de membre Slack peut envoyer un message direct au bot. Les messages non-propriétaires sont abandonnés silencieusement.slack.allowed_enterprise_ids est défini, les messages provenant d'autres espaces de travail sont abandonnéskirocrew logs -f pour des erreurs de déconnexion websocketVous avez ajouté une nouvelle fonctionnalité qui nécessite une portée non accordée au moment de l'installation. Correctif :
kirocrew setup — collez le nouveau jeton de botAjoutez l'événement app_home_opened, activez le Home Tab dans les paramètres de l'application Slack, réinstallez l'application.
Bug connu de l'interface utilisateur de Slack. Utilisez plutôt Features → OAuth & Permissions → Install to Workspace — cela fait la même chose.
DISCORD_BOT_TOKEN est défini et que kirocrew doctor signale Discord connectédiscord.allowed_users (liste d'autorisation refusant par défaut)Ajoutez l'identifiant Discord de l'utilisateur à discord.allowed_users via la configuration ou le panneau de paramètres Discord du tableau de bord.
Discord limite les messages à 2000 caractères. Le transport se divise automatiquement. Si vous voyez une troncature au lieu d'une division, vérifiez la présence d'un formateur personnalisé fragile.
~/.kiro/agents/kirocrew.json contient kirocrew-core et kirocrew-cronincludeMcpJson: false est définikirocrew doctor — il signale l'état des sondes MCPDétruit et reconstruit la configuration MCP à partir de zéro. Résout la plupart des problèmes de « MCP brisé ».
La passerelle déclenche automatiquement une sonde lorsqu'un nouveau serveur apparaît, mais les résultats ne se manifestent qu'au prochain rafraîchissement du tableau de bord. Attendez quelques secondes et rechargez. Si cela reste sur « Unknown », le serveur échoue à la prise de contact — vérifiez le texte de l'erreur ou kirocrew logs -f.
Comportement correct. kirocrew-core et kirocrew-cron sont limités à l'agent et ne devraient pas apparaître dans les sessions kiro-cli interactives. Si c'est le cas, quelque chose les a écrits dans une configuration globale de fournisseur — signalez un bogue.
Vérifiez le badge Crew sur la ligne. S'il reste vert, la règle de préservation copie la configuration du serveur dans ~/.kiro/crew/mcp.json avant de le retirer du global, il continue donc de se charger dans les sessions Crew.
Désactivez le badge Crew avant de retirer du global pour un retrait complet.
La réinitialisation de session vide le bassin préchargé. Utilisez Dashboard → Apply & Restart, ou exécutez kirocrew config set (ce qui déclenche automatiquement un redémarrage).
kirocrew token --ttl 2hL'environnement d'exécution groupé télécharge son modèle via HTTPS depuis le CDN de Crew au démarrage de la passerelle. Vérifiez :
~/.kiro/crew/models/KIROCREW_EMBED_MODEL_URL vers un miroir si le CDN par défaut est inaccessibleJusqu'à ce que le modèle arrive, la mémoire fonctionne avec la recherche par mots-clés.
session.pool_size (par défaut 1) si vous disposez de RAM disponible.La passerelle est encore en cours d'initialisation. Causes courantes :
Attendez 30 secondes, puis rafraîchissez. Si cela persiste → consultez kirocrew logs -f.
kirocrew doctor # diagnose kirocrew gateway --port auto # try a random port if 5476 is in use
Si le port 5476 est utilisé :
lsof -iTCP:5476 -sTCP:LISTEN # find what's on it
kirocrew restartLe contexte de session se remplit trop rapidement. Options :
skills.lazy_load: true pour un budget plus strictsession.autocompact_pct: 95Le chien de garde se déclenche à 60 min (avertissement) et 2 h (réinitialisation). Si la tâche est réellement bloquée :
kirocrew logs -f pour l'activité de session de l'étape spécifiquePOST /api/taskrunner/{task_id}/retry avec from_step: NTEST_TIMEOUT est de 90 min par exécution de test; si votre suite de tests prend plus de temps, remplacez-la par une configuration par étape ou divisez la tâchekirocrew run TASK.md --no-test pour voir ce que l'agent produit avant la barrière de testLa tâche a réessayé la même étape en échec 3 fois avec des erreurs identiques. L'exécuteur de tâches marque l'étape FAILED pour éviter de gaspiller des tentatives sur un correctif impossible.
Déboguer : vérifiez le message d'erreur de l'étape. Causes courantes :
Envisagez de marquer l'étape requires_approval: true et d'inspecter l'état manuellement.
Consultez spawn list pour l'état. S'il affiche stalled (aucune activité depuis 120 s), le sous-agent est inactif — soit légitimement (en attente d'approbation), soit bloqué.
spawn cancel <id> depuis le bouton Stop de la ligne du tableau de bordLe récupérateur force la récupération au délai d'expiration strict de 30 minutes.
Le sous-agent peut avoir échoué au démarrage (tâche vide, mémoire faible, cwd rejeté, refus de gouvernance). Consultez spawn list pour un état terminal failed avec la raison.
kirocrew cron list affiche l'état--no-crons a été passé à gateway — le planificateur est désactivéVérifiez l'acheminement de la livraison :
<!-- deliver:C0123CHANNEL --> : acheminé vers ce canal Slack--silent : aucune notification à moins que l'agent n'en envoie une explicitementkirocrew config set — déclenche automatiquement un redémarrage du bassin de sessions. Devrait fonctionner.kirocrew restartkirocrew restart pour forcer un rechargementVous avez défini une valeur de configuration numérique hors de la plage autorisée. Elle a été plafonnée à la limite; l'entrée SEL enregistre le plafonnement. Ajustez votre valeur ou consultez la référence Configuration pour connaître les plages valides.
Le point de contrôle WAL a échoué parce que la passerelle détient un verrou. L'instantané se poursuit tout de même — l'API backup() de SQLite produit une copie cohérente incluant les données WAL validées. L'avertissement est informatif.
Les instantanés rejettent les liens symboliques et les liens physiques pour des raisons de sécurité. Si votre instantané en contient un (inhabituel), l'archive est mal formée. Régénérez l'instantané à partir d'une source propre.
Définissez instances.enabled: true dans ~/.kiro/crew/config.json et redémarrez la passerelle.
L'assouplissement du CSP frame-src ne s'applique qu'aux ports de tunnel actifs. Confirmez que l'instance est connectée (le panneau Manage affiche un badge connecté vert), pas seulement ajoutée.
Renouvelez les identifiants SSH (rajoutez la clé à ssh-agent). Les tunnels se réparent d'eux-mêmes une fois SSH restauré.
La sonde de santé + l'auto-réparation à deux niveaux réessaient pendant environ 2 min (8 tentatives, avec un plafond de recul exponentiel). Si elle abandonne, un diagnostic s'exécute automatiquement. Vérifiez :
ssh <host> kirocrew doctor)Accordez l'autorisation d'utiliser le microphone du navigateur pour l'origine du tableau de bord. Dans Chrome : cadenas de la barre d'adresse → Site settings → Microphone → Allow.
~/.kiro/crew/voices/aws_transcribe pour une précision de niveau infonuagique : pip install "kirocrew[voice]", puis définissez voice.stt_provider: "aws_transcribe" et configurez les identifiants AWSLa pile de récupération est manquante pour ce profil / cette région. Deux options :
install-reaper.sh --profile <name> --region <region>ttl_hours: 0 (persistant, aucun récupérateur nécessaire)Les en-têtes du site déployé datent d'avant la pile de base actuelle. Tout déploiement subséquent met à jour la pile en place. En attendant, la carte affiche le statut de repli avec un lien simple — cliquez pour voir le site.
Si rien ici ne correspond à votre problème :
kirocrew logs -f (suivi en direct), kirocrew doctor --verbosedocs/system-specs/modules/ dans le dépôt Crew
Dépannage