PaPoo
cover

TypeError: pipeline() expects an array as the first argument が Workflow で出るときに見えているもの

このエラーが出るかどうかは、かなり限定された条件に寄っています。issue 報告を見る限り、Workflow tool に配列やオブジェクトを渡したつもりでも、スクリプト側では args が文字列として届いてしまうケースがあります。そうなると args.items のような参照は崩れ、pipeline() に配列が渡らず、TypeError: pipeline() expects an array as the first argument で止まります。

同じ症状として報告されているのは #75751 と #77529 です。どちらも、Workflow の args に JSON オブジェクトを渡したのに、スクリプト側では JSON 文字列として扱われた、という内容でした。

#75751 では、Workflow({ script: "...const items = args.items; pipeline(items, ...)", args: {"items": [ {...}, {...} ] } }) という形で呼ぶと、args の中身がパース済みオブジェクトではなく JSON 文字列になり、args.items が undefined になって即座に落ちると報告されています。表示されたエラーは次のとおりです。

TypeError: pipeline() expects an array as the first argument

#77529 でも、短い再現スクリプトで typeof args を調べると "string" になっていました。代表的な再現コードと結果はこうです。

export const meta = { name: 'args-type-probe', description: 'probe', phases: [] }
return {
  typeofArgs: typeof args,
  isArray: Array.isArray(args),
  keysIfObject: (typeof args === 'object' && args !== null) ? Object.keys(args) : null,
  first80: String(args).slice(0, 80),
}
{"typeofArgs":"string","isArray":false,"keysIfObject":null,"first80":"{\"probe\": [1, 2, 3], \"nested\": {\"a\"...

このため、まず疑うべきなのは「pipeline() の実装」そのものではなく、Workflow に渡した args がスクリプト側で配列やオブジェクトとして見えていないことです。issue 報告の範囲では、args の型崩れが先に起き、その結果として pipeline() が配列を受け取れずに例外を出しています。

筆者の環境で実際に取れた出力は環境情報だけでしたが、少なくとも検証時点の実行環境は次のとおりです。

[env_summary]
OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-10-25T08:55:08+09:00

現時点で確認できるのはここまでです。したがって、Workflow で args に配列やオブジェクトを渡しているのに、スクリプト側で文字列として見えているなら、この症状クラスタに入る可能性が高いです。逆に、args が本当に配列として届いているかは、issue の再現コードのように typeof args や Array.isArray(args) を見ないと切り分けられません。

もし同じエラーを踏んでいるなら、まずは args の型を確認するのが先です。pipeline() 側の修正を疑う前に、スクリプトに届いている値が JSON 文字列ではないかを見たほうが早いです。


検証環境

OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-10-25T08:55:08+09:00

参照した Issue(anthropics/claude-code): #75751, #77529

同じ著者の記事