終了コード
coscli の終了コード一覧です。スクリプトや CI でのエラー分岐に使います。
最新の一覧は cos exit-codes --json で取得できます。
終了コード一覧
0 — success: 成功
1 — error: 一般エラー (stderr を確認)
2 — unauthorized: 認証エラー (401)
3 — forbidden: 権限エラー (403)
4 — not_found: リソースが見つからない (404)
5 — validation_error: 入力値エラー (引数・フラグの誤り)
6 — conflict: 楽観ロック 競合
7 — policy_denied: sandbox ポリシー違反
124 — timeout: タイムアウト
各コードの対処法
exit 2 — unauthorized
認証 が切れています。cos auth login で再ログインしてください。
code:bash
cos auth login
exit 3 — forbidden
プロジェクトへのアクセス権限がありません。プロジェクト名と 認証 プロファイルを確認してください。
exit 4 — not_found
ページやプロジェクトが見つかりません。タイトルのスペルを確認してください。
code:bash
# ページがなければ作成
cos page new "タイトル" --line "" --project myproject
exit 5 — validation_error
代表的な原因:
--json と --plain の同時指定
--no-input 時に必須フラグ (--sid / --force) が不足
行番号・範囲指定の不正 (--line / --range)
タイトル行 (1行目) への page.line.replace / page.line.delete
Cosense 記法の lint エラー (--strict-notation 指定時)
exit 6 — conflict
楽観ロック の競合です。最新の commitId を取得して --expect-commit を更新してください。
code:bash
COMMIT=$(cos page get "タイトル" --project myproject --json --results-only --select 'commitId')
cos page edit "タイトル" --from-file ./content.txt --expect-commit "$COMMIT" --project myproject
exit 7 — policy_denied
sandbox のポリシー違反です。--enable-commands を緩和するか、必要なコマンドを追加してください。
exit 124 — timeout
--browser-timeout (auth login の CDP 待機) が超過しました。--browser-timeout を延長してください。
シェルスクリプトでの分岐例
code:bash
cos page get "タイトル" --project myproject --json
case $? in
0) echo "成功" ;;
2) cos auth login ;;
4) cos page new "タイトル" --line "" --project myproject ;;
6) COMMIT=$(cos page get "タイトル" --project myproject --json --results-only --select 'commitId') \
&& cos page edit "タイトル" --from-file ./content.txt --expect-commit "$COMMIT" --project myproject ;;
7) echo "sandbox 違反: --enable-commands を確認してください" ;;
esac
#reference