ADVERTISEMENT

【Power Automate】接続参照が急に動かない時の実行履歴から原因を読む方法

【Power Automate】接続参照が急に動かない時の実行履歴から原因を読む方法
🛡️ 超解決

Power Automateで長期間問題なく動作していたフローが、ある日突然「接続参照が見つからない」「認証に失敗した」というエラーで停止することがあります。このような時、多くのユーザーはフロー設計やトリガー条件を見直しがちですが、原因の多くは接続参照に関連する権限やトークンの期限切れにあります。本記事では、実行履歴に記録されたエラーメッセージを読み解き、接続参照が動かない原因を特定する方法を、実業務で遭遇する具体例とともに解説します。迅速な復旧と再発防止に役立ててください。

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

  • 最初に見る場所: フローの実行履歴(Run history)で、失敗した実行のエラーメッセージとHTTPステータスコード。
  • 切り分けの軸: 接続参照そのものの有効性(接続のテスト)と、使用しているコネクタのAPIアクセス許可、およびサービスプリンシパルやアカウントの資格情報の有効期限。
  • 注意点: 接続参照の所有者を安易に変更したり、コネクタを削除したりしないこと。管理者に確認せずにサービスプリンシパルのパスワードをリセットすると、他のフローにも影響が出る可能性があります。

ADVERTISEMENT

1. 接続参照とは何か、なぜ突然動かなくなるのか

Power Automateの「接続参照(Connection Reference)」は、フロー内の各アクションが使用する接続情報(例:SharePoint、Outlook、SQL Serverなど)を一元管理するためのリソースです。フローが実行されるたびに、接続参照を介して実際の接続が呼び出されます。突然動かなくなる原因としては、以下のようなケースが考えられます。

  • トークンの期限切れ: 特に委任認証を使用している場合、アクセストークンやリフレッシュトークンが有効期限を迎えると認証に失敗します。
  • 資格情報の変更: 接続に使用しているユーザーアカウントのパスワードが変更されたり、サービスプリンシパルのシークレットがローテーションされた場合。
  • APIアクセス許可の変更: Azure ADでアプリケーションに付与していたAPIアクセス許可が削除または変更された場合。
  • 接続参照の所有者変更: フローまたは接続参照の所有者が変わると、内部のセキュリティコンテキストが変わりアクセスできなくなることがあります。
  • 環境やソリューションの移動: フローを別の環境にインポートした際に、接続参照が正しくマッピングされないケース。

2. 実行履歴を開き、エラーメッセージを確認する手順

まずは、停止したフローの実行履歴を確認しましょう。以下の手順でエラーメッセージを読み取ります。

  1. Power Automateポータル(make.powerautomate.com)にアクセスし、該当のフローを開きます。
  2. 左側のメニューから「実行履歴(Run history)」をクリックします。
  3. 失敗した実行(ステータスが「Failed」)を選択し、詳細ペインを開きます。
  4. エラーメッセージが表示されている場所を確認します。通常は「エラー(Error)」タブまたは各アクションの「出力(Output)」セクションに赤いエラーが表示されます。
  5. エラーに含まれるHTTPステータスコード(例:401 Unauthorized、403 Forbidden、404 Not Found)と、エラーコード(例:InvalidAuthenticationToken、AccessDenied)をメモします。

エラーメッセージが長い場合は、JSON形式の出力をコピーして、キーワードを検索すると原因が絞り込みやすくなります。

よく見られるエラーメッセージとその意味

エラーメッセージ(抜粋) 考えられる原因 確認すべき点
“InvalidAuthenticationToken” または “Access token has expired” トークンの期限切れ(委任認証の場合) 接続参照のテスト接続を実施。再認証が必要。
“AccessDenied” または “Insufficient privileges to complete the operation” APIアクセス許可の不足、またはスコープの問題 Azure ADのアプリ登録でAPIアクセス許可を確認。
“Connection reference not found” または “The connection reference is missing” 接続参照が削除された、または別環境にインポート時に参照が切れた ソリューション内の接続参照の存在とマッピングを確認。
“The client secret has expired” または “AADSTS7000222” サービスプリンシパルのシークレット有効期限切れ Azure ADでシークレットの有効期限を確認し、新しいシークレットで接続を更新。
“Tenant does not have an active subscription” テナントのサブスクリプションの一時停止やライセンスの問題 管理者に問い合わせ、サブスクリプションの状態を確認。

3. エラーメッセージの種類と原因の特定方法

エラーメッセージの内容に応じて、原因をさらに絞り込むことができます。以下に代表的なパターンを紹介します。

3.1 認証関連エラー(401、403)

HTTP 401 Unauthorized はトークンが無効であることを示します。委任認証の場合、ユーザーがサインインし直すことで新しいトークンが発行されます。サービスプリンシパル認証の場合は、シークレットの有効期限を確認してください。HTTP 403 Forbidden はトークンは有効だが、必要なアクセス許可がないことを意味します。Azure ADでアプリケーションにAPIアクセス許可が正しく付与されているか、管理者の同意が行われているかを確認します。

3.2 接続参照の欠如(404)

HTTP 404 Not Found で“Connection reference not found”と表示される場合、フローが参照している接続参照が削除されたか、環境間でマッピングが失われている可能性があります。ソリューションを利用している場合は、インポート後に接続参照を手動で設定し直す必要があります。フローエディターで接続参照が「未設定」になっていないかを確認してください。

3.3 サービスプリンシパルの問題

エラーコードに“AADSTS”が含まれる場合、Azure Active Directoryからの応答です。特に“AADSTS7000222”(シークレット期限切れ)や“AADSTS700016”(アプリケーションが見つからない)が頻出します。これらのエラーが発生した場合は、管理者にサービスプリンシパルの状態を確認してもらいましょう。

4. よくある失敗パターンとその対処法

実際の現場でよく見られる具体的な失敗事例を挙げます。

  • パターン1: 夜間バッチ処理でトークン切れ
    フローが長時間実行されるバッチ処理で、トークンの有効期限(通常1時間)を超えて処理が継続した場合、後半のアクションで認証エラーが発生します。対処法として、処理を分割するか、サービスプリンシパル認証に変更してトークン有効期限を回避します。
  • パターン2: 社員の退職によるアカウント無効化
    フローが特定のユーザーアカウントの委任認証を使用している場合、そのユーザーが退職してアカウントが無効化されるとフローが停止します。この場合は、サービスアカウントやグループ管理サービスプリンシパルに切り替えることが推奨されます。
  • パターン3: ソリューションインポート時の接続参照マッピング漏れ
    開発環境から本番環境にソリューションをインポートする際、接続参照のマッピングを正しく設定しないと、接続が確立できずエラーになります。インポート後の確認手順を標準化し、接続参照のテストを忘れずに行いましょう。
  • パターン4: APIバージョンの変更による互換性喪失
    Power Automateで使用しているコネクタが新しいAPIバージョンに移行し、古い接続参照が互換性を失うケースがあります。この場合、接続参照を再作成する必要があります。Microsoftの公式ブログやサービス正常性の確認を習慣にしてください。

5. 管理者に確認すべきこと

一般ユーザーでは解決できないケースでは、管理者に以下の情報を伝えて迅速な対応を依頼しましょう。

  • フローの実行履歴のエラーメッセージ全文: 文字列だけでなく、JSON出力も共有することで原因特定が早まります。
  • 接続参照の種類と使用しているAPI: SharePoint、Microsoft 365、Azure SQLなど、どのリソースに接続しようとしているかを明確にします。
  • 最近の変更履歴: 管理者側でサービスプリンシパルのシークレットローテーションやAPIアクセス許可の変更を行っていないかを確認してもらいます。
  • Azure ADの監査ログ: エラー発生日時近辺のログを確認することで、具体的な変更点を特定できる場合があります。

6. よくある質問(FAQ)

よく寄せられる質問とその回答をまとめました。

Q1: 接続参照をテスト接続すると成功するのに、フロー実行時には失敗するのはなぜですか?
A: フロー実行時のセキュリティコンテキストが異なる可能性があります。例えば、フローが共有されている場合、所有者以外が実行すると委任認証のスコープが変わります。フローの「所有者」と「実行ユーザー」の関係を見直してください。

Q2: 「サービスプリンシパルがテナントで見つかりません」というエラーが出ます。
A: フローが参照しているアプリ登録が削除された可能性が高いです。管理者にアプリ登録の存在を確認してもらい、必要であれば再接続してください。

Q3: 実行履歴にエラーメッセージがほとんど表示されず、「失敗」とだけ書かれています。
A: フロー自体がタイムアウトしたか、アクションの実行前にエラーが発生している可能性があります。トリガー条件やコネクタの初期化部分を見直し、より詳細なログを取得するため、フロー内に「スコープ」アクションを追加してエラーハンドリングを強化してください。

Q4: 接続参照を新しいものに置き換えたいのですが、既存のフローにどう反映させればよいですか?
A: フローエディターで該当のアクションを開き、接続参照を変更します。ソリューション内の接続参照を置き換える場合は、マネージドソリューションの更新が必要な場合があるため、管理者に相談してください。

7. まとめ

Power Automateの接続参照が突然動かなくなった場合、実行履歴のエラーメッセージを正しく読むことで、原因をトークン期限切れ、権限不足、接続参照の欠如などに絞り込めます。手順としては、まず実行履歴を開き、HTTPステータスコードとエラーコードを確認します。その上で、接続のテストやAzure ADの設定確認を行い、必要に応じて管理者に情報を引き継ぎます。この記事で紹介した手順を実践することで、復旧までの時間を短縮し、同様の問題が再発しないように予防策を講じることができます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT