When an actrun workflow execution fails, identify the cause and propose a fix.
How to use this skill
Apply this skill when the user requests any of the following:
- actrun execution failed and they want to know the cause
- I want to debug workflow errors
- they want actrun output analyzed
Diagnostic procedure
Step 1: Obtain the execution result
# 最新の実行一覧を確認
actrun run list
Obtain details of the failed run
actrun run view
Obtain detailed information in JSON (easier to analyze)actrun run view --json
### Step 2: ログの確認
```bash
# 全ログを確認
actrun run logs <run-id>
# 失敗したタスクのログを特定して確認
actrun run logs <run-id> --task <job_id>/<step_id>
run view --json の steps From the array, status: "failed" identify the step of id を --task and pass it to
Step 3: Cause classification and remediation
Classify into the following patterns and remediate:
A. Tool not installed
Symptoms: command not found, No such file or directory
Remediation:
# 依存ツールチェック
actrun doctor
# ローカルツールがあるならスキップ設定
# actrun.toml:
# local_skip_actions = ["actions/setup-node"]
B. Action compatibility issues
Symptoms: unsupported action input, action not found
Remediation:
- Check whether it is a built-in supported action (checkout, cache, artifact, setup-node)
- For unsupported actions,
--skip-actionskip with - Remote action is
--trustallow fetching with the flag
actrun ci.yml --skip-action unsupported/action --trust
C. Path/workspace issues
Symptoms: file not found, path is different
Remediation:
--workspace-modechange (local→worktreeortmp)actions/checkoutif skipping, check whether the file is in the current directory
# worktree で隔離実行
actrun ci.yml --worktree
D. Secrets/variables not set
Symptoms: ${{ secrets.XXX }} is empty, authentication error
Remediation:
# シークレットを環境変数で渡す
ACTRUN_SECRET_GITHUB_TOKEN=$(gh auth token) actrun ci.yml
# .env ファイルから読み込み
actrun ci.yml --env .env.local
E. Conditional expression errors
Symptoms: if condition evaluation error, unexpected skip
Remediation:
--dry-runcheck the execution plan withACTRUN_LOCAL=truecheck the conditional branching by${{ env.ACTRUN_LOCAL }}check whether is set
F. Nix-related
Symptoms: nix develop error, package not found
Remediation:
# Nix を無効化して切り分け
actrun ci.yml --no-nix
# アドホックパッケージを指定
actrun ci.yml --nix-packages "nodejs python312"
G. Docker/container-related
Symptoms: docker: command not found, image pull failure
Remediation:
# Docker が動いているか確認
actrun doctor
# ランタイム変更
actrun ci.yml --container-runtime podman
Step 4: Retry
# 修正後、失敗ジョブのみリトライ
actrun ci.yml --retry
# 特定ジョブだけ実行
actrun ci.yml --job <failed-job-id>
JSON output analysis points
actrun run view <run-id> --json Important fields of :
| Field | Description |
|---|---|
state |
completed, partial_failed, failed |
ok |
Overall success/failure (boolean) |
exit_code |
Exit code |
steps[].id |
Step ID (job_id/step_name) |
steps[].status |
success, failed, skipped |
steps[].message |
Output message |
tasks[].stdout_path |
stdout log file path |
tasks[].stderr_path |
stderr log file path |
issues[] |
Warnings/issues during execution |
Reading log files directly
It is also possible to read the run store's log files directly:
# デフォルトの run store パス
_build/actrun/runs/<run-id>/tasks/<task_id>.stdout.log
_build/actrun/runs/<run-id>/tasks/<task_id>.stderr.log