トラブルシューティング

Takuto Core エンジンと Takuto CLI の両方から集めた、よくある問題とその対処法です。 セルフホストモデルの問題は セルフホストモデル を、provisioning の 問題は Takuto Core の拡張 を参照してください。

ネットワークと egress

npm ci が失敗する / 「Exit handler never called」

npm レジストリが egress firewall でブロックされています。デバッグログを確認します:

docker exec -u takuto <container> tail -30 /home/takuto/.npm/_logs/*-debug-0.log

config.toml[network] extra_egress_hosts にレジストリのドメインを追加して再起動します。

Claude Code の「api_retry error: unknown」

プロバイダーの API エンドポイントがブロックされています。egress firewall は [agent].available_providers のすべてのプロバイダーのホストを自動的に許可するので、まず 使っているプロバイダーがそこに記載されているか確認してください。次に container 内から到達性を 確認します:

docker exec -u takuto <container> curl -s -o /dev/null -w "%{http_code}" https://api.anthropic.com

それでも到達できないホストがある場合(例: IP がローテーションするベンダーのエンドポイントや、 セルフホストのゲートウェイ)は、[network] extra_egress_hosts に追加してください。

データベース

「Database backend unreachable」 / pool timed out

[database] connection の外部データベースに Takuto container の内側から到達できないため、 レガシーの SQLite にフォールバックしています(fail_fast = true の場合は中断します)。よくある 原因は 接続ホスト です: データベースを container で動かしている場合、文字列はデータベースの container 名とその内部ポート(例: takuto_db:5432)を使わなければなりません — localhost や ホスト側に公開したポート(例: localhost:5433)では なく、そして両方の container が同じ ネットワークを共有している必要があります。完全な手順とエンジンごとの接続文字列は 外部データベース を参照してください。

認証

リビルドや再起動のあとに認証が見つからない

認証は Docker ボリュームに置かれています。ボリュームが削除された場合は、セットアップフローを 再実行してください:

# With the CLI
takuto auth

# Running the engine directly
docker compose run --rm -it takuto setup

takuto start / docker compose up が「Egress rules applied」のあとで止まる

認証のプリフライトが実行中です。ここでのハングは、たいてい TTY なしでブロックする agent status が原因です。Cursor の場合は takuto.envCURSOR_API_KEY を設定して 対話式チェックをスキップしてください。それ以外の場合はイメージをリビルドします。

Cursor Agent のログインエラー

これらはすべて、古いイメージレイヤーにいることを意味します。リビルドしてください:

# With the CLI
docker compose -f takuto.yml build --no-cache

# Running the engine directly
docker compose build --no-cache

リビルドで直る症状:

  • bad option: --use-system-ca(古いレイヤーは Node 20 を使用。現在のイメージは新しい Node を 同梱)。
  • /usr/local/bin/node: No such file or directory(古いレイヤーから Node バイナリが削除)。
  • Cannot find module '/usr/local/bin/index.js'(不完全な cursor-agent ツリー)。

プロジェクトのツールバージョン(mise)

イメージは mise をインストールし、初回実行時にツールをビルドします。 インストールは mise-datamise-cache ボリュームに永続化されます。リポジトリごとに .mise.toml または .tool-versions ファイルでランタイムを固定してください(例: Node、Python、Ruby)。

Podman

SELinux を使う Linux

docker-compose.ymlsecurity_opt: [label=disable] を設定します。SELinux のラベリングを 維持しなければならない場合は、ホストからバインドマウントに :z / :Z を付けてボリュームを relabel してください。

container 名の衝突

podman stop -a && podman rm -f $(podman ps -aq) 2>/dev/null
podman pod rm -f $(podman pod ls -q) 2>/dev/null

macOS でメモリ不足になる

Podman の VM は workflow とは別に、自分用のメモリ取り分を必要とします。起動前に増やして ください:

podman machine stop && podman machine set --memory 12288 --cpus 4 && podman machine start

ログ

workflow ごとのログファイルは container 内にあります:

docker exec <container> cat /workspace/logs/<TICKET-KEY>.log

ダッシュボードも各 workflow カードでライブのターミナル出力をストリーミングし、項目ごとのログ 保持期間は [general] work_item_log_retention_days で制御されます。

まだ解決しませんか?

Takuto Core は ベータ です — ここでカバーされていないことに出くわしたら、あなたの フィードバックを心から歓迎します。作者への連絡方法は FAQ を、設定の背後にある 正確なキーは 設定リファレンス を参照してください。