Power Automateで子フローを利用していると、意図しないタイミングで何度も繰り返し実行されるトラブルが発生することがあります。この問題はフローのロジックミスだけでなく、接続設定や所有者情報の不整合が原因になっているケースが少なくありません。特に会社の共有環境では、フローの所有者が変わったり、接続が期限切れになると、ループが発生しやすくなります。本記事では、子フローが想定外に繰り返される原因を具体的に切り分け、接続と所有者の確認手順をわかりやすく解説します。
【要点】この記事で確認すること
- 最初に見る場所: 子フロー内で使用しているコネクタの接続参照と所有者設定。
- 切り分けの軸: フローのトリガー条件、接続の有効期限、所有者の変更履歴の3つで原因を分類します。
- 注意点: 会社の共有環境では個人の接続を使い続けると権限エラーが起きやすいため、サービスプリンシパルや共有接続の利用を検討してください。
ADVERTISEMENT
目次
子フローが想定外に繰り返される根本原因とは
子フローが予期せず繰り返し実行される原因は、主に以下の3つに分類されます。1つ目はフローのトリガー条件そのものが誤っている場合です。たとえば「ファイルが作成されたとき」をトリガーにしているのに、子フローがそのファイルを更新してしまうと、無限ループが発生します。2つ目は接続設定の問題です。Power Automateの各アクションは特定のコネクタ接続(例:SharePoint、Outlook)を使用しますが、その接続の所有者が変更されていたり、接続が期限切れになっていると、認証エラーが繰り返されることがあります。3つ目は所有者設定の不備です。特に子フローを複数のユーザーで共有している場合、各ユーザーの権限やライセンスが異なると、フローが正しく動作せずにリトライが無限に発生する現象が報告されています。
接続設定の確認手順
接続設定の不備は、子フローの想定外の繰り返しで最も多い原因の一つです。以下の手順で接続を確認してください。この手順はフロー作成者または編集権限を持つユーザーで実行してください。
- Power Automateポータル(make.powerautomate.com)にサインインし、該当の親フローまたは子フローを開きます。
- 画面左側のメニューから「接続」を選択し、すべての接続一覧を表示します。
- 子フローで使用しているコネクタ(SharePoint、Outlook、Teamsなど)をクリックし、接続の詳細を開きます。
- 「所有者」フィールドを確認します。ここに表示されているユーザーが現在の接続所有者です。自分以外のユーザー名が表示されている場合は、そのユーザーが辞めた、または権限を失っている可能性があります。
- 「編集」ボタンから接続を更新し、必要に応じて自分または適切なアカウントに変更します。ただし、接続を編集できない場合は、新しい接続を作成してフロー内の接続参照を差し替えてください。
接続参照の確認方法
フロー内で使われている接続がどこから来ているのかを確認するには、フローエディターで各アクションをクリックし、表示される「接続」プロパティをチェックします。ここに表示される接続名は、先ほど確認した「接続」一覧の名前と一致している必要があります。もしフロー内で「接続されていません」や「無効な接続」と表示される場合は、その接続を削除して再作成してください。また、親フローと子フローで異なる接続を使用していると、想定外の繰り返しが発生しやすくなります。特に複数のフローが同じリソースを扱う場合は、すべてのフローで同一の接続オブジェクトを利用するように統一してください。
接続の所有者と権限
接続の所有者は、その接続が初めて作成されたユーザーです。所有者が退職したり、アカウントが無効になると、接続は機能しなくなります。その結果、フローは実行時にエラーとなり、リトライポリシーによって何度も再試行されることがあります。この問題を防ぐためには、所有者をチーム内の共有サービスアカウントや、管理者が管理するサービスプリンシパルに変更することを推奨します。SharePoint OnlineやMicrosoft 365グループの場合は、アプリ登録とサービスプリンシパルを使った接続が長期的に安定します。ただし、この設定変更にはテナント管理者の承認が必要な場合があるため、事前にIT部門へ相談してください。
所有者設定が引き起こすループのメカニズム
所有者設定の問題は、特に複数人でフローを共有・編集する環境で顕著になります。たとえば、Aさんが作成した子フローをBさんが編集して実行権限を付与した場合、フローの所有者はAさんのままですが、接続がBさんのものに変わっていると、権限の不一致が発生します。Power Automateは実行時に「フロー所有者=接続所有者」であることを期待するため、不一致があると認証エラーが発生し、フローが再試行を繰り返すのです。また、フローの「所有者」プロパティが空欄になっている場合(まれに発生)、システムはデフォルトのサービスアカウントを割り当てようとし、結果として不安定な動作を引き起こします。
所有者が異なるフロー間の挙動
親フローと子フローで所有者が異なる場合、子フローが呼び出されるたびに認証トークンの再取得が行われ、そのプロセスでエラーが発生することがあります。特に親フローが「サインインしたユーザーとして実行」モードで動作している場合、子フロー側の所有者が親の実行ユーザーと一致しないと、委任(delegation)の問題が生じます。この現象は、SharePointのアイテム作成やTeamsのメッセージ投稿など、ユーザーコンテキストが必要な操作で顕著です。解決策としては、親フローと子フローで同一の専用ユーザーアカウントを所有者に設定するか、接続をサービスプリンシパルベースに統一する方法があります。
自分以外の所有者に委任する方法
フローの所有者を別のユーザーに変更するには、フローを共有する際に「共同所有者」として追加するのではなく、一度フローをエクスポートしてから別のユーザーがインポートするという方法が確実です。Power Automateでは、直接所有者を変更する機能は提供されていません。その代わり、フローの「編集」画面から「共有」を開き、新しいユーザーを追加して「共同所有者」ロールを付与します。ただし、この場合も元の所有者は削除できないため、実質的な所有者の移行にはなりません。完全に所有者を変更したい場合は、フローを別のユーザーが新規に作成し直すか、ソリューションに追加して環境をまたいで管理する必要があります。この点は管理者と相談しながら進めてください。
トラブルシューティング比較表
| 症状 | 考えられる原因 | 確認ポイント | 対応方法 |
|---|---|---|---|
| 子フローが短時間に何度も実行される | トリガー条件のループ(例:更新アクションが自身をトリガー) | フローの実行履歴でトリガー元を確認 | トリガー条件にフィルターを追加(例:ファイル名に特定の文字列を含む場合のみ実行) |
| エラーメッセージ「接続が無効です」が表示される | 接続の所有者が変更された、または接続の期限切れ | Power Automateの「接続」ページでステータスを確認 | 新しい接続を作成し、フロー内の参照を更新 |
| 子フローが途中で止まり、リトライが無限に続く | 所有者と接続所有者の不一致 | フローのプロパティで所有者を確認、接続の所有者と比較 | フロー所有者を接続所有者と同じアカウントに変更(インポートし直し) |
| 特定のユーザーだけがフローを実行できない | ライセンス不足、または権限設定の誤り | ユーザーのPower Automateライセンスとロールを確認 | 適切なライセンスを割り当てる、または共有設定を見直す |
管理者に確認すべきポイント
子フローの繰り返し問題が解決しない場合、管理者(IT部門)に以下の情報を伝えてください。
- フローの実行履歴IDとエラーメッセージのスクリーンショット。具体的なエラーコードがあれば併記します。
- フローの所有者と接続所有者の一覧。Power Automateポータルで確認できるユーザー名を伝えます。
- 問題が発生し始めた時期と、その前後に行った設定変更(フローの共有、接続の更新、ライセンス変更など)。
- テナント全体の接続制限やAPIレート制限の状況。管理者はPower Platform管理センターから確認できます。
- サービスプリンシパルの利用可否。もし可能であれば、管理者にアプリ登録を依頼して安定した接続環境を構築してもらいます。
よくある質問(FAQ)
Q. 子フローが繰り返される原因がトリガーなのか接続なのか、どうやって見分ければよいですか?
A. 実行履歴を確認してください。エラーが表示されている場合は接続や所有者の問題が疑われます。エラーがなく単純に何度も実行されている場合はトリガー条件のループを疑います。また、フローの「リトライポリシー」設定を確認し、デフォルトの4回以上リトライしているかどうかも判断材料になります。
Q. 接続の所有者を変更してもフローが直りません。他に何が考えられますか?
A. フロー内で使用している「接続参照」が古い接続を指し続けている可能性があります。アクションごとのプロパティで接続を再選択してみてください。また、フローを保存し直すことで内部の参照が更新されることもあります。それでも改善しない場合は、フローを新規作成し直すことも検討してください。
Q. 親フローから子フローを呼び出す際に、子フローの所有者が親フローのトリガーユーザーと異なると問題がありますか?
A. はい、あります。特に子フローが「ユーザーとして実行」するアクションを含む場合、親フローの実行ユーザーと子フローの所有者が異なると、委任の権限エラーが発生します。子フローは親フローのコンテキストを引き継がないため、子フロー内のアクションは子フローの所有者権限で実行されます。このため、親と子で所有者を統一するか、必要な権限をすべてのユーザーに付与する必要があります。
Q. 会社のポリシーで個人アカウントの接続を使うなと言われています。どうすればよいですか?
A. テナント管理者に依頼して、アプリ登録を行い、サービスプリンシパル(アプリ専用のID)を作成してもらいます。その後、Power Automateで「Azure AD」接続を作成し、そのアプリのクライアントIDとシークレットを使用します。これにより、個人のアカウントに依存しない安定した接続が実現します。設定手順は管理者のガイドラインに従ってください。
まとめ
子フローが想定外に繰り返される問題は、多くの場合、接続の所有者不一致や期限切れが原因です。まずはフローの実行履歴と接続一覧を確認し、トリガーループと接続問題を切り分けてください。次に、接続の所有者が適切かどうかをチェックし、必要に応じて新しい接続に差し替えます。フローの所有者を変更するにはエクスポート・インポートが確実です。会社の共有環境では、サービスプリンシパルを利用した接続が長期的な安定につながります。本記事の手順を参考に、再発防止策を講じてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
