Power Automate「502エラー(Bad Gateway)」の意味と修復・改善方法:一過性の問題から根本解決まで
Power Automateでフローを実行していると、時折「502 Bad Gateway」というエラーメッセージに遭遇することがあります。このエラーは、フローが外部サービス(Web API、コネクタが利用するAPIなど)にリクエストを送信したものの、そのリクエストを中継するサーバーが、目的のサーバーから予期せぬ応答を受け取った、または全く応答がなかった場合に発生する、サーバー側の問題を示すHTTPステータスコードです。
「502エラー」は、一過性の問題であることも多い一方で、フローの設計や連携先のサービスの特性に起因する根本的な問題を示すこともあります。
「502エラー(Bad Gateway)」が発生する主な原因
502エラーは、主に以下のような状況で発生することが多いです。
一時的なサービス側の問題(最も多い原因):
- 連携先のSaaS(Salesforce、SAP、Dropboxなど)や、Microsoft自身のサービス(SharePoint Online、Excel Online、Outlook、承認サービスなど)が、一時的な高負荷、メンテナンス、または予期せぬ障害により、応答が遅延したり、一時的に無効な応答を返したりしている。
- Power Automateが利用するAzure基盤やAPI Managementゲートウェイで、一時的な通信障害や負荷スパイクが発生している。
タイムアウト
フローが連携先のサービスにリクエストを送信したが、サービスからの応答がPower Automateが待機できる時間(タイムアウト期間)内に返ってこなかった場合。これは、連携先の処理に時間がかかっているか、応答が途中で途切れた場合に発生します。
連携先のサーバーの不安定性:
フローが接続しようとしているWeb APIやオンプレミスサーバーが、一時的にダウンしている、再起動中である、または不安定な状態にある。
大量データ処理の負荷:
- Power Automateが、連携先のサービスに対して非常に大量のデータを一度に処理するよう要求した結果、連携先のサービスが過負荷になり、応答に失敗した場合。
- Excel Onlineの特定のスクリプト(Office Scripts)で処理に時間がかかりすぎた場合に502エラーが出ることが報告されています。
不適切な応答形式:
連携先のサービスが、Power Automateが期待する応答形式(例:JSON)ではない、無効な、または予期しない形式のデータを返した場合。
(これは稀ですが、HTTPアクションなどでカスタムAPIを呼び出している場合に起こり得ます)
ネットワーク/プロキシ/ファイアウォールの問題:
- Power Automateと連携先のサービスの間にあるネットワーク経路(インターネット、社内ネットワーク、プロキシサーバー、ファイアウォールなど)で、一時的な通信障害やブロックが発生している。
- 特にオンプレミスデータゲートウェイを利用している場合、ゲートウェイとPower Automateサービス間の通信に問題がある可能性。
カスタムコネクタ/HTTPアクションの設定ミス
カスタムコネクタやHTTPアクションで、APIのURLが間違っている、必要なヘッダーが不足している、リクエストボディの形式が正しくない、などの設定ミスがある場合。
Power Appsからの呼び出しにおける特定のシナリオ
Power AppsからPower Automateフローを呼び出す際に、フローが「Power Appsへの応答」アクションを必ず実行しないパスがある場合や、応答のスキーマが呼び出し側と一致しない場合に502エラーが発生することが報告されています。
「502エラー」の具体的な修復・改善方法
502エラーは原因が多岐にわたるため、以下の対処法を順番に試していくことが推奨されます。
修復方法1:時間をおいて再試行する(最も手軽で効果的)
502エラーの多くは、連携先のサービスやPower Automate基盤の一時的な高負荷や不安定性に起因します。
- しばらく待ってから再試行:
- エラーが発生したら、まずは数分から数時間(サーバーメンテナンスや大規模障害の場合はもっと長く)待ってから、再度フローを手動でテスト実行してみましょう。これで問題が解決することが非常に多いです。
- 特に、エラーメッセージに
The server experienced an issue and couldn't complete the request. Please try again in a few moments.といった記述がある場合は、一時的な問題の可能性が高いです。
- フローに「再試行ポリシー」を設定する:
- フローの各アクションには、「設定」の中に「再試行ポリシー」を設定するオプションがあります。
- 該当のアクションをクリックし、「設定」タブを開きます。
- 「再試行ポリシー」で「既定」を選択するか、「カウント」と「間隔」をカスタム設定(例:カウントを5回、間隔を10秒)します。
- これにより、フローは一時的な502エラーが発生した場合でも、自動で指定回数だけ再試行し、問題が解決すればフローが正常に完了します。これは、一過性のエラーを吸収する上で非常に有効な手段です。
修復方法2:連携先のサービスの状態を確認する
連携先のサービス側に問題がないかを情報収集します。
- Microsoft 365 サービス正常性ダッシュボードを確認:
- フローがSharePoint Online、Excel Online、OutlookなどのMicrosoft 365サービスと連携していて502エラーが発生する場合、Microsoft 365 管理センターの「サービス正常性」ダッシュボード(https://www.google.com/search?q=admin.microsoft.com にサインイン後、「正常性」→「サービス正常性」)を確認します。
- 利用しているサービス(例:SharePoint Online, Exchange Online, Excel Online)に現在障害やメンテナンスが発生していないかを確認できます。
- 外部サービスのステータスページを確認:
- Salesforce、Dropbox、Adobe Signなど、Microsoft以外の外部サービスに接続している場合は、そのサービスの公式ステータスページや開発者ブログ、SNSアカウントなどを確認し、サービス障害やAPIの遅延に関する情報を探します。
- オンプレミスサーバーの状態を確認:
- オンプレミスのWeb APIやデータベースサーバーと連携している場合は、そのサーバーが正常に稼働しているか、負荷が高まっていないか、ネットワーク接続に問題がないかを確認します。
修復方法3:タイムアウトの原因を特定し、処理を最適化する
特に処理に時間のかかるアクションで502エラーが発生する場合に有効です。
- 大量データの処理の最適化:
- フローが非常に多くのデータ(数千行を超えるExcelやリストアイテムなど)を一度に処理しようとしていないか確認します。
- 「並列処理」の活用: 「Apply to each」アクションの設定で「コンカレンシー制御」(並列処理)を有効にし、同時実行の数を制限します。これにより、一度に多数のリクエストを送信するのを防ぎ、API側の負荷を軽減できます。
- ページネーション/バッチ処理の導入: 大量のデータを複数回に分けて取得・処理する(ページネーション)ようにフローを設計します。また、連携先のAPIがバッチ処理をサポートしている場合は、それを活用してAPI呼び出しの回数を減らします。
- フロー内の複雑なロジックの見直し:
- 特に「Apply to each」ループ内で、複数のAPI呼び出しや複雑な計算、条件分岐が連続していないか確認します。
- ループ内で繰り返し同じデータを取得するのではなく、ループの外で一度取得して変数に格納し、ループ内で変数を利用するなど、API呼び出しの回数を最小限に抑える設計を心がけましょう。
- アクションのタイムアウト設定の調整:
- 該当アクションの「設定」で、「タイムアウト」の値を長くできる場合があります(デフォルトは通常1分)。ただし、極端に長くするとフロー全体の実行時間が長くなるため、慎重に設定します。
修復方法4:応答形式やデータ内容を確認・修正する
連携先からの応答データがPower Automateの期待する形式と異なる場合に発生します。
- 「入力」と「出力」の詳細を確認:
- エラーが発生したステップの実行履歴を開き、そのステップの「入力」と「出力」の詳細(特に「生の出力の表示」)を確認します。
- 502エラーの
innerErrorやmessageの中に、連携先サービスからの具体的なエラーメッセージや、応答がJSON形式ではないなどの情報が含まれていることがあります。
- APIの応答形式を検証する:
- HTTPアクションやカスタムコネクタを使用している場合は、PostmanなどのAPIテストツールを使って直接APIを呼び出し、返される応答が期待する形式(JSONなど)になっているか、正しいデータが返されているかを確認します。
- 特に、エラーメッセージが
The response is not in a JSON format.と示されている場合、これが原因です。
- 「JSONの解析」(Parse JSON)アクションのスキーマを修正:
- もしフローに「JSONの解析」アクションがあり、そのスキーマが実際のAPI応答と異なっている場合、エラーが発生することがあります。最新の応答データに基づいてスキーマを更新します。
- データ型の不一致を修正:
- 渡されたデータが期待するデータ型(数値、文字列、ブール値など)と異なっている場合、
int(),string(),bool()などの式を使って、明示的にデータ型を変換することで解決する場合があります。
- 渡されたデータが期待するデータ型(数値、文字列、ブール値など)と異なっている場合、
修復方法5:Power Appsから呼び出すフローの場合の特殊な対処法
Power AppsからPower Automateフローを呼び出す際に502エラーが発生する特定のシナリオが報告されています。
- 「Power Apps または Power Virtual Agents への応答」アクションの確認:
- フローがPower Appsから呼び出されている場合、フローの最終ステップに「Power Apps または Power Virtual Agents への応答」アクションが必ず含まれているか確認します。
- 重要な点として、この「応答」アクションは、フローが成功するパスでも、失敗するパスでも、必ず実行されるように設定する必要があります。
- もし、フローがエラーパスに進んだ場合や、特定の条件で応答アクションがスキップされる設計になっていると、Power Apps側は応答を待機し続けることになり、最終的にタイムアウトで502エラーを返すことがあります。
- 応答のスキーマの一致:
- 「Power Apps または Power Virtual Agents への応答」アクションで定義されている応答スキーマが、Power Apps側が期待しているデータ構造と一致していることを確認します。スキーマの不一致も502エラーの原因となることがあります。
修復方法6:ネットワークやゲートウェイの問題を診断する
オンプレミスデータゲートウェイを利用している場合や、社内ネットワーク環境に問題がある場合。
- オンプレミスデータゲートウェイの確認:
- Power Automateの「データ」→「ゲートウェイ」で、該当のゲートウェイのステータスが「オンライン」になっているか確認します。
- ゲートウェイがインストールされているサーバーで、ゲートウェイサービスが正常に実行されているか確認し、必要であれば再起動します。
- ゲートウェイの診断ツールやログを確認し、接続の問題がないか調べます。
- ネットワーク接続の確認:
- フローがアクセスしようとしている外部サービスに対して、Power Automateが実行されているリージョン(Azureデータセンター)からのアクセスがネットワークやファイアウォールによってブロックされていないか確認します。
- 企業のプロキシサーバーやファイアウォールが、Microsoft 365の推奨IPレンジやURLをブロックしていないか確認します。
修復方法7:フローや接続を再作成する(最終手段)
上記の方法を試しても解決しない場合は、フローや接続が何らかの理由で破損している可能性も考慮します。
- エラーのあるアクションを再作成:
- 502エラーが出ている特定のアクションをフローから削除し、同じ設定で再度追加し直します。
- 該当する接続を再作成:
- Power Automateの「データ」→「接続」から、該当する接続を削除し、新しい接続を再作成します。その後、フロー内のアクションに新しい接続を紐づけ直します。
- フロー全体を再作成(最終手段):
- フロー全体が非常に複雑でなく、他の解決策が尽きた場合は、フロー全体を新しいものとして再作成することを検討します。これにより、見えない破損が解消される可能性があります。
「502エラー」は多角的な視点でのトラブルシューティングが鍵
Power Automateにおける502エラーは、その性質上、原因がフローの外側(連携先のサービス、ネットワーク、ゲートウェイなど)にあることが多いため、トラブルシューティングには多角的な視点が必要です。
まずは「時間をおいて再試行」し、「再試行ポリシー」を設定することが、一過性の問題を乗り越える上で最も効果的です。それでも解決しない場合は、実行履歴の詳細な「入力」と「出力」を確認し、エラーメッセージのinnerErrorなどに隠された真の原因を特定します。

