概要
Azure Data Factory のパイプラインをデバッグ実行中に、message が NULL になるエラーが発生した場合の対応方法について共有します。デバッグ実行時に以下のようなエラーが発生し、原因が特定できず困っていました。このエラーが発生する要因はいくつか考えられますが、私の場合は ForEach アクティビティの中にさらに ForEach アクティビティを含めていたことが原因でした。
{
"code": "BadRequest",
"message": null,
"target": "pipeline//runid/de7c4ef7-533a-4b8b-bda2-cdace6015990",
"details": null,
"error": null
}
エラーについて
Azure Data Factory のドキュメントにて、 ForEach アクティビティに関する制限が下記のように記載されています。
別の ForEach ループ (または Until ループ) 内に ForEach ループを入れ子にすることはできません。
引用元:ForEach アクティビティ - Azure Data Factory & Azure Synapse | Microsoft Learn
Azure Data Factory の UI にて Foreach アクティビティ内で Foreach アクティビティを確認すると下記のようなメッセージが表示されて、基本的には Foreach アクティビティを追加できないようになっています。ただし、他のパイプラインの内容をコピー&ペーストを実施すると Foreach アクティビティを追加できてしまい、デバック実行時にエラーとなってしまいました。
入れ子になった ForEach アクティビティはサポートされていません。ForEach activity のスコープ内に ForEach アクティビティを含めることはできません。新しい処理パイプラインを開始するには、Execute Pipeline アクティビティを検討してください。
Operation on target ForEach1 failed: Container activity cannot include another container activitynull