ADVERTISEMENT

【Power Automate】再試行回数で困った時の入力値と条件分岐の直し方

【Power Automate】再試行回数で困った時の入力値と条件分岐の直し方
🛡️ 超解決

Power Automateでフローを実行した際、「再試行回数を超えました」というエラーに遭遇したことはありませんか。このエラーは、フロー内のアクションが一時的な障害やタイムアウトにより失敗し、設定された再試行回数でリカバリーできなかった場合に発生します。多くの場合、原因は外部サービスへの接続不安定さやAPI制限ですが、実は手動で変更可能な「再試行ポリシー」や「入力値の設計」によって簡単に解決できるケースが少なくありません。本記事では、再試行回数エラーが起きたときの具体的な入力値の見直し方と条件分岐の修正方法を、実務に即して解説します。

【要点】この記事で確認すること

  • 最初に見る場所: エラーが発生したアクションの「設定」タブ内にある「再試行ポリシー」の入力値(回数と間隔)。
  • 切り分けの軸: エラーが「一時的な接続障害」なのか「API制限(スロットリング)」なのか「データ不整合」なのかを見極める。
  • 注意点: 再試行回数をむやみに増やすとフローの実行時間が長くなり、他の処理に影響する。また、会社のポリシーで最大値が制限されている場合があるので管理者に確認が必要。

ADVERTISEMENT

再試行エラーの原因を特定するための確認手順

再試行回数エラーの原因は大きく分けて3つあります。まずはエラーメッセージと実行履歴を確認し、どのパターンに該当するかを特定してください。

エラーの種類 特徴 代表的な原因
一時的な障害 再試行後に成功することが多い。特定時間帯のみ発生。 ネットワーク瞬断、サーバーダウン
スロットリング 同じコネクタで大量のリクエスト。HTTP 429エラー。 API呼び出し制限超過
データ不整合 毎回同じアクションで失敗。入力値の形式ミスなど。 必須フィールド欠落、存在しないレコード参照

実行履歴からエラー詳細を確認する

Power Automateポータルで該当フローを開き、「実行履歴」から失敗した実行を選択します。エラー出力に表示されるメッセージやHTTPステータスコードを確認してください。たとえば「429 Too Many Requests」はスロットリング、「504 Gateway Timeout」はタイムアウトが疑われます。これらを見極めたうえで、次の対処に進みます。

アクションの設定で現在の再試行ポリシーを確認する

失敗したアクションを編集し、「設定」タブを開きます。「再試行ポリシー」が「既定値」または「カスタム」になっているかを確認します。既定値では再試行回数2回、間隔60秒に設定されています。カスタムの場合は現在の入力値(最大再試行回数と再試行間隔)をメモしておきましょう。

再試行ポリシーの入力値を適切に変更する手順

原因が一時的な障害またはスロットリングである場合、再試行ポリシーの値を調整することで成功率を高められます。以下の手順で変更を行ってください。

  1. Power Automateで該当フローを編集モードで開きます。
  2. エラーが発生したアクション(例:「HTTP」、「SharePoint の項目を作成する」など)の右上にある「…」メニューから「設定」を選択します。
  3. 「再試行ポリシー」を「カスタム」に変更します。
  4. 「最大再試行回数」に適切な値を入力します。一時的な障害なら3~5回、スロットリングなら1~3回(むやみに増やすと制限に引っかかり続けるため推奨しません)。
  5. 「再試行間隔(秒)」に値を設定します。一般的な瞬断なら30~60秒、スロットリングの場合は60~300秒(1~5分)に設定します。
  6. 「保存」してフローを再度実行し、エラーが解消されたか確認します。

条件分岐を使って再試行ロジックを組み込む方法

標準の再試行ポリシーでは対応が難しいケース(例:特定のエラーコードだけ再試行したい、再試行前に後処理を行いたい)では、アクションの後に「条件」を追加して手動で再試行ロジックを実装できます。たとえばHTTPアクションの出力からステータスコードを取得し、500系のエラーであれば「スコープ」内で同じアクションを再度実行するようにします。その際、無限ループを防ぐために変数で再試行回数をカウントし、上限に達したら別の処理(通知など)に分岐させます。

具体的には、「変数の初期化」で retryCount を0に設定し、アクションの直後に「条件」で statusCode が 500以上かどうかをチェックします。条件が true の場合、「変数の増加」で retryCount を1増やし、さらに「条件」で retryCount が最大値未満かどうか判定。未満なら「遅延」アクションで数十秒待ってから同じアクションをループさせます。この方法は複雑ですが、細かい制御が可能です。

失敗しやすいパターンと具体的な対処例

パターン1: 再試行回数をむやみに増やしてフローが遅くなる

再試行回数を10回以上に設定した結果、1回の実行が数十分かかるようになったケースがあります。特にスロットリングが原因の場合、過剰な再試行がかえって制限を悪化させます。最適な値は「エラー原因が一時的か永続的か」で異なります。一時的なら3回、間隔30秒で十分です。スロットリングの場合は、再試行よりもリクエスト間隔を長くするほうが効果的です。

\h3>パターン2: データ不整合なのに再試行で解決しようとする

必須フィールドが欠けているなどのデータ不整合は、再試行しても必ず失敗します。この場合、エラー出力に「BadRequest」や「InvalidPayload」が含まれているはずです。アクションの入力値を再確認し、コネクタのドキュメントと照らし合わせて正しい形式に修正してください。

\h3>パターン3: 条件分岐のループが終了しない

手動で再試行ロジックを組んだ際、ループ変数の更新を忘れると無限ループになります。必ずループ回数をカウントする変数を設け、上限に達したらエラーとして終了するか、管理者に通知する分岐を作成しておきます。

管理者に確認すべき設定と制限事項

会社の環境では、Power Automateのテナント制限やコネクタごとのAPI制限が設定されている場合があります。以下の点を管理者に確認してください。

  • テナント全体の再試行ポリシーの最大値(既定ではアクションあたり最大4回、間隔最大300秒など)。
  • 使用しているコネクタ(SharePoint、Outlook、SQL Serverなど)のAPIレート制限(1分あたりの最大リクエスト数)。
  • Power Automateライセンスの種類(ライセンスによって同時実行数や呼び出し制限が異なります)。

また、管理者はPowerShellスクリプトやPower Platform管理センターでテナントの制限を確認できます。必要に応じて制限緩和の申請も可能です。

よくある質問(FAQ)

Q: 再試行ポリシーはすべてのアクションに設定できますか?
A: いいえ、一部のアクション(特にトリガーやコネクタの特定の操作)では設定できない場合があります。設定タブに「再試行ポリシー」が表示されない場合は、代わりに条件分岐で手動再試行を実装する必要があります。

Q: 再試行間隔を「指数関数的バックオフ」にすることは可能ですか?
A: 標準の再試行ポリシーでは固定間隔のみですが、条件分岐を使って「遅延」アクションの時間をループごとに増やすことで指数関数的バックオフを実現できます。ただし、フローが複雑になるため、シンプルな固定間隔で十分なケースが多いです。

Q: エラーが続く場合、フローを一時停止すべきですか?
A: 連続して失敗する場合は、即座に一時停止し原因を調査してください。再試行を続けるとリソースを消費し、他のフローにも影響する可能性があります。また、エラー内容が深刻な場合は管理者に報告してください。

まとめ

Power Automateの再試行回数エラーは、適切な入力値の調整と条件分岐の追加でほとんどのケースを解決できます。まずはエラー原因を一時的な障害・スロットリング・データ不整合の3つに切り分け、それぞれに合った対策を選んでください。再試行ポリシーの変更は手軽ですが、会社の制限を超えないように注意が必要です。より複雑な制御が必要な場合は条件分岐を使った手動再試行ロジックを検討し、必ずループ上限とエラー時の通知を組み込んでください。障害が頻発する場合は管理者に相談し、API制限の緩和やインフラの改善を依頼することも視野に入れましょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT