Power Automateでコード400とは何ですか?404との違いは?改善方法は?

Power Automateで「400エラー」が出た!「404」との違いと解決方法を徹底解説

「Power Automateのフローが動かなくて、エラーコードが『400 Bad Request』って出たんだけど、これってどういう意味?」「前に『404 Not Found』ってエラーも見たけど、何が違うのかな?」「このエラーが出たら、どう直せばいいの?」

こんな風に感じたことはありませんか? Power Automate(パワー・オートメイト)で業務の自動化を進めていると、時々エラーに遭遇することは避けられません。その中でも「400エラー」は、比較的よく見かけるエラーの一つです。このエラーが出ると、フローは連携先のサービスへの要求を正しく送ることができず、作業が中断してしまいます。

「400エラー」も「404エラー」も、その意味を理解し、適切な対処法を知っていれば、多くの場合、比較的簡単に解決できます。これらのエラーは、フロー自体が壊れてしまったわけではありません。


 

「400エラー」ってどんな意味?「要求がおかしい」というサイン

Power Automateで発生する「400エラー」は、HTTPステータスコードの一種で、「Bad Request(バッド・リクエスト)」と読みます。これは、日本語で言うと「不正な要求」や「要求が間違っている」といった意味になります。

簡単に言えば、Power Automateのフローが連携先のサービス(例えばSharePointやOutlook、外部のWebサービスなど)に何かをお願いする「要求」を送ったけれど、その要求の内容自体がおかしかったり、不完全だったり、サービス側のルールに合っていなかったりしたために、サービス側がその要求を処理できなかった状態を示します。

例えば、

  • サービスに「名前」と「年齢」を教えてほしいと要求したのに、あなたが「名前」しか教えていなかった。
  • サービスに送るべきデータの形式が「数字」なのに、誤って「文字」を送ってしまった。
  • 送信するデータに、サービスが許可しない記号や文字が含まれていた。

このような場合に、サービス側は「あなたの要求は間違っているので、処理できません」という意味で400エラーを返すのです。

Power Automateでの表示

Power Automateのフローの実行履歴では、エラーになったステップをクリックすると、「ステータス コード: 400」という表示とともに、「Bad Request」や「Invalid input」といったメッセージが表示されることが多いです。このメッセージには、なぜ要求が間違っていたのか、具体的なヒントが書かれていることもあります。


「400エラー」はなぜ起きるの?主な原因を考える

400エラーが発生する原因は、フローが連携先のサービスに送信する「データ」や「要求の形式」に問題がある場合がほとんどです。

要求するデータが足りない、または形式が違う

フローのアクション(例えば「SharePointのアイテムを作成します」や「メールを送信する」など)で、連携先のサービスが必須としている情報が入力されていない場合や、指定されたデータ形式(例:数値、日付、特定の選択肢など)に合っていない場合に発生します。

送信するデータ(JSONなど)の構造や構文が間違っている

特に、「HTTP要求を送信します」アクションや「JSONの解析」アクションを使っている場合、フローが送ろうとしているデータの構造(JSONやXMLなど)が、サービス側が期待する形と異なっていると400エラーになります。例えば、括弧の閉じ忘れや、カンマの抜け、あるいはフィールド名の間違いなどです。

不適切な文字や記号が含まれている

送信するデータの中に、連携先のサービスが受け付けない特殊な文字や記号が含まれている場合、400エラーが発生することがあります。例えば、ファイル名やパスにサービスが許可しない記号を使っていたり、テキストフィールドに絵文字などが入っていたりするケースです。

APIのルールに違反している

外部のWebサービスと連携する際に、そのサービスのAPI(アプリケーション・プログラミング・インターフェース)が定めている特定のルールや制約に違反した要求を送った場合に発生します。例えば、APIが要求するパラメーターの値が範囲外である、許可されていない操作を要求した、などです。

データの型変換がうまくいっていない

フローの中で、データを文字列から数値に、または日付から特定の形式に変換する際に、変換がうまくいかず、期待と異なるデータ形式が次のステップに渡されてしまった場合にも、それが400エラーの原因となることがあります。


「400エラー」と「404エラー」は何が違うの?

「400エラー」と「404エラー」は、どちらもWebサービスでよく見かけるエラーコードですが、意味している内容は明確に異なります。

400 Bad Request(不正な要求)

これは「あなたの『要求』がおかしい」というエラーです。

サービスは、あなたが何をしようとしているか(要求)を理解しようとしましたが、その要求の『内容』や『形式』が間違っているため、処理できません、と伝えています。

例:「登録フォームで必須項目が空欄です」「パスワードが指定の文字数に達していません」「送られてきたデータが、こちらが期待するJSON形式ではありません」

404 Not Found(見つかりません)

これは「あなたが指定した『場所』に、目的のものがありません」というエラーです。

サービスは、あなたの要求自体は受け取ったものの、その要求が指し示しているファイルやページ、あるいはリソースが、指定されたURLには存在しない、と伝えています。

例:「このURLのページは削除されました」「このファイルはもうこの場所にありません」

簡単に言えば、400は「要求の書き方」の問題、404は「要求の場所」の問題、という違いがあります。


「400エラー」の具体的な修復・改善方法

400エラーは、フローが送信するデータや要求の形式に問題があるため、フローの設計を見直すことで解決することがほとんどです。

エラーになったステップの「入力」と「出力」を詳しく確認する

これが400エラーを解決する最も重要なステップです。

  1. フローの実行履歴を開き、エラーになったステップをクリックします。Power Automateのポータル(https://www.google.com/search?q=make.powerautomate.com)にサインインし、「マイ フロー」からエラーが出たフローを選び、失敗した実行履歴を開きます。
  2. エラーになったステップの「入力」と「出力」を確認します。エラーになっているステップ(通常は赤く表示されています)をクリックして展開します。そこに「入力」という項目と「出力」という項目があるはずです。
    • 「入力」を確認: そのステップが、前のステップからどのようなデータを受け取っていたかを確認します。期待通りのデータが渡されていましたか? データが空になっていませんか? 形式は合っていますか?
    • 「出力」を確認: エラーになったステップ自体が出力した(または出力しようとした)データと、エラーメッセージの詳細がここに表示されます。このエラーメッセージには、なぜ要求が不正だったのか、具体的なヒントが書かれていることが多いです(例:「このフィールドは必須です」「値が指定された範囲外です」「JSON形式が正しくありません」など)。
  3. エラーメッセージと詳細情報から原因を特定します。英語で書かれている場合でも、Google翻訳などを活用して、書かれている内容を正確に理解するよう努めます。エラーコードや特定のフィールド名が示されていることが多いです。

 

フローのアクション設定を見直す

エラーメッセージが示す内容に基づいて、該当するアクションの設定を修正します。

  1. 必須項目が空でないか確認する:もし「このフィールドは必須です」といったエラーが出ている場合、アクションの設定で、必須の項目に値が入力されているか、前のステップから値が正しく渡されているかを確認します。空になる可能性のある動的なコンテンツを使用している場合は、事前に「条件」アクションで空でないかチェックする処理を加えることを検討します。
  2. データ形式(型)が正しいか確認する:例えば、数値を入れるべき場所に文字列を入れていないか、日付を入れるべき場所に間違った形式の文字列を入れていないかを確認します。必要であれば、Power Automateの式(Expression)を使って、データ型を明示的に変換します(例: int(), string(), formatDateTime() など)。
  3. JSONやXMLの構文を確認する(HTTPアクションの場合):「HTTP要求を送信します」アクションの「本文(Body)」でJSONやXMLを直接記述している場合、その構文が正しいかを確認します。括弧やカンマの打ち間違いがないか、厳密にチェックしましょう。オンラインのJSONバリデーターツールなども活用できます。
  4. 不適切な文字が含まれていないか確認する:ファイル名やテキストフィールドに、連携先のサービスが受け付けない特殊文字(例: *, ?, <, > など)が含まれていないかを確認します。必要であれば、そのような文字を削除したり、置換したりする処理をフローに加えます。
  5. APIドキュメントを確認する:外部のWebサービスと連携している場合、そのサービスのAPIドキュメントを参照し、送ろうとしている要求がAPIの仕様(必須パラメーター、データ形式、許容される値の範囲など)に合致しているかを確認します。

接続や認証の問題がないか再確認する

これは401エラーの主な原因ですが、認証情報が部分的に間違っているなど、接続の問題が400エラーとして返されることも稀にあります。

  1. 接続の再認証を試みる:Power Automateの左メニュー「データ」→「接続」から、該当の接続が「有効」になっているか確認します。もし無効であれば、「接続を修正」または「再接続」を試します。
  2. アカウントの権限を確認する:接続に使用しているアカウントが、そのアクションを実行するために必要な権限(例: SharePointリストへの書き込み権限)を持っているか再確認します。

デバッグツールやテスト環境を活用する

問題の特定と修正を効率的に行うために、デバッグの技術を活用しましょう。

  1. 「作成」(Compose)アクションで中間データを確認する:エラーになっているステップの直前や、データを加工している途中に「作成」(Compose)アクションを挟み込み、その時点でのデータの内容を出力として表示させます。これにより、データが期待通りの形式や内容になっているか、空になっていないかなどをフロー実行履歴で確認でき、問題の箇所を特定しやすくなります。
  2. テスト環境で十分に検証する:本番環境のフローでエラーが頻発するのを避けるため、開発中のフローは必ずテスト環境で十分に検証を行いましょう。様々なシナリオ(成功、失敗、データがない場合など)を想定してテストすることで、本番稼働後のエラーを減らせます。
  3. PostmanなどのAPIテストツールでAPIを直接テストする(HTTPアクションの場合):「HTTP要求を送信します」アクションで400エラーが出る場合、PostmanやInsomniaといったAPIテストツールを使って、Power Automateから送ろうとしているのと同じリクエストを直接APIに送信してみます。これにより、Power Automateのフローの問題なのか、APIの要求内容自体に問題があるのかを切り分けられます。

 

「400エラー」は「入力データや要求の形式」に注目!

Power Automateで「400エラー」が発生した場合、それはフローが連携先のサービスに送った「要求の内容」や「データの形式」に問題があることを示しています。「404エラー」が「要求の場所」の問題であるのに対し、400は「要求の書き方」の問題です。

エラーの修正には、エラーになっているステップの「入力」と「出力」を詳しく確認することが何よりも重要です。エラーメッセージのヒントを頼りに、必須項目が埋まっているか、データ形式が正しいか、JSONの構文に間違いがないかなどを丁寧に確認し、修正することで、問題を解決できるでしょう。

これらの対処法を理解し、実践することで、Power Automateの「400エラー」に冷静かつ的確に対応し、フローの安定稼働を維持できるようになるはずです。