最近、OpenClaw の定时タスクを設定した際にプッシュ失敗の問題が発生しました。調査した結果をここに記録します。

問題の症状

定时タスク実行後、ステータスが error となり、ログを確認すると:

Feishu API 400: Invalid ids: [heartbeat]

調査過程

当初は channel の設定問題だと思い、channel"feishu" に変更しましたが、タスクは実行されるもののメッセージは届きませんでした。

タイムゾーンの問題も疑いましたが、それでも解決しませんでした。

最後にログを注意深く確認したところ、重要なエラーが見つかりました:

Delivering to Feishu requires target <chatId|user:openId|chat:chatId>

Feishu チャンネルには --to パラメータが必須 でした!

正しい設定方法

Feishu 定时タスクの完全な形式:

openclaw cron create \
  --name "タスク名" \
  --cron "0 8 * * *" \
  --tz "Asia/Tokyo" \
  --channel feishu \
  --to "user:あなたのOpenID" \
  --best-effort-deliver \
  --message "タスク内容"

3つの重要ポイント:

  1. --tz "Asia/Tokyo" —— 現地時間で実行されることを確保
  2. --channel feishu —— Feishu チャンネルを指定
  3. --to "user:xxx" または --to "chat:xxx" —— 対象ユーザーまたはグループ ID を指定(必須)

よく使うコマンド

# すべてのタスクを確認
openclaw cron list

# タスクの配信設定を変更
openclaw cron edit <job-id> \
  --announce \
  --channel feishu \
  --to "user:xxx" \
  --best-effort-deliver

# タスクのタイムゾーンを変更
openclaw cron edit <job-id> --tz "Asia/Tokyo"

経験のまとめ

  1. 推測で済ませない--channel feishu は最初の一歩で、--to が必要
  2. 完全なテスト:タスク作成後は --at で数分後のテストを行い、メッセージが届くことを確認
  3. タイムゾーンの統一:すべてのタスクに --tz を追加し、混乱を避ける

覚えておいてください:Feishu プッシュには、--to パラメータが必須です。