自動化
PR

Power Automateでフローが動かない時の対処法|エラー別の原因と直し方

sanane
記事内に商品プロモーションを含む場合があります

はじめに

Power Automate を使っていると、必ず一度は「フローが動かない」「赤いエラーが出た」場面に出くわします。

エラーは大きく分けて

①保存しようとした時点で分かるもの

②実行して初めて分かるもの

があり、原因の探し方・直し方もそれぞれ違います。

本記事では、よく遭遇するエラーをエラーメッセージの原文つきで整理し、原因と直し方、そして「エラーが起きても止まらないフロー」を作る方法(Try-Catch)まで、実際の画面で解説します。

エラー文でそのまま検索して来た方も、該当箇所から読めます。

こんな人にオススメ
  • フローが動かない・保存できない原因を切り分けたい
  • エラーメッセージの意味と直し方を知りたい
  • エラーが出ても途中で止まらないフローを作りたい

Power Automate の基本・料金・他の実例一覧はこちら。

あわせて読みたい
Power Automateとは?できること・使い方・始め方を実例40本で解説
Power Automateとは?できること・使い方・始め方を実例40本で解説

保存できない時:フローチェッカーを見る

必須項目が空だったり設定に不備があると、保存時にブロックされます。たとえば「変数の設定」で名前を空のまま保存しようとすると、上部にエラーバナーが出て、フローチェッカー(右上のアイコン)が自動で開き、どのアクションの何が問題かが階層表示されます。

フローチェッカーが変数の設定のパラメーターエラー(名前は必須です)を表示している

「保存できない」ときは、まずこのフローチェッカーの「エラー」タブを開いて、指摘されたアクションを直すのが基本の流れです。

「変数の設定」は既存の変数の値を変えるだけのアクションで、新しい変数は作れません。新規に変数を用意したいときは「変数を初期化する」を使います。名前が似ていて紛らわしいので注意しましょう。

注意:軽い構文ミスは「勝手に直されて」保存が通る

意外な挙動として、式の閉じ括弧を忘れる程度の軽い構文ミスは、式エディタに警告(「この式には問題があります」)が出るものの、保存時に自動修正されてそのまま通ってしまうことがあります。

式エディタに、この式には問題がありますという警告が表示されている

下の例では concat('a' という閉じ括弧の欠けた式が、実行時には a として評価されていました。「保存が通ったから正しい」とは限らないので、式を書いたら必ずテスト実行して、出力が意図通りかを確認しましょう。

閉じ括弧が欠けた式が自動修正され、出力がaになっている実行結果

実行時によく出るエラーと直し方

存在しないプロパティを参照した(null参照)

取得したデータに無いキーを参照すると、次のようなエラーになります。

Unable to process template language expressions ... property '存在しないキー' cannot be selected. Property selection is not supported on values of type 'String'.

原因は、参照しようとしたプロパティが実際のデータに存在しない、または想定と違う型(この例では文字列)だったこと。直し方は、実行履歴の「未加工の出力」で実際のデータ構造を確認し、正しいプロパティ名に直します。存在するか不確実な項目は ?[...] のセーフナビゲーションや coalesce() で保険をかけると安全です。

存在しないキーを参照したことによるnull参照エラーの実行詳細

数値に変換できない値を変換した(型変換エラー)

int('abc') のように数値化できない文字列を int() に渡すと、次のエラーになります。

The template language function 'int' was invoked with a parameter that is not valid. The value cannot be converted to the target type.

直し方は、変換前の値が本当に数字だけかを確認すること。空欄や記号混じりの可能性があるなら、条件アクションで事前チェックするか、後述の Try-Catch でエラーを受け止めます。

int('abc')による型変換エラーの実行詳細

この他、当サイトの各記事でも実際のエラーと対処を扱っています。タイムゾーンID誤りの InvalidTemplate日付・時刻の記事、行が見つからない 404Excel行操作の記事、コピー先に同名ファイルがある BadRequestファイルコピーの記事で原文つきで解説しています。

失敗した実行を見つけて「再送信」する

フローが失敗したら、実行履歴で原因を調べます。右上の「すべての実行」ドロップダウンから「失敗した実行」を選ぶと、失敗分だけに絞り込めます。

実行履歴を失敗した実行のみに絞り込んだ画面

原因を直したら、失敗した実行にチェックを入れて「フロー実行を再送信する」ボタンを押せば、同じ入力でやり直せます(トリガーからやり直す必要がありません)。

失敗した実行を選択して再送信ボタンが活性化した画面

なお「認証エラー」「接続できない」系は、左メニューの「接続」ページで各コネクタの状態を確認し、切れている接続を再認証すると直ることが多いです。

エラーが起きても止まらないフロー(Try-Catch)

最後に実践テクニックです。「スコープ」アクションと実行条件(この後に実行する)を組み合わせると、プログラミングの Try-Catch のような「エラーを受け止めて後処理する」構成が作れます。

  1. 「スコープ」を2つ置く(Try と Catch)
  2. Try の中に本来の処理を入れる
  3. Catch の「設定」→「この後に実行する」で、Try が「失敗しました」の時だけ実行するように変更
Catchスコープの実行条件で失敗しましたのみをチェックした設定画面

こうすると、Try がエラーになっても Catch が後始末(通知やログ記録など)を行い、フロー全体としては正常終了扱いになります。下は Try が失敗(赤)・Catch が成功(緑)となり、上部に「正常に実行されました」と表示された結果です。

Tryが失敗しCatchが成功、フロー全体は正常終了となった実行結果

「Catch が動かない」ときは、Try より前のアクションが先に失敗していないか確認してください。Power Automate は既定で「直前のアクションが成功したときだけ実行」するため、途中で別のアクションが失敗すると、Try 自体が「スキップ」されて Catch まで到達しません。

まとめ

  • 保存できない時はフローチェッカーで指摘箇所を直す。軽い構文ミスは自動修正されるので必ずテスト実行を
  • 実行時エラーは「未加工の出力」で実データを確認。null参照・型変換が2大パターン
  • 失敗した実行は絞り込んで「再送信」。接続エラーは接続ページで再認証
  • スコープ+実行条件で Try-Catch。エラーを受け止めて止まらないフローにできる

エラーを未然に防ぐには、そもそもの条件分岐やトリガー条件の設計も大切です。あわせてどうぞ。

あわせて読みたい
Power Automateの条件分岐の使い方|条件とスイッチの違い・型のワナ
Power Automateの条件分岐の使い方|条件とスイッチの違い・型のワナ
あわせて読みたい
Power Automateのトリガー条件で無駄な実行を減らす方法
Power Automateのトリガー条件で無駄な実行を減らす方法
記事URLをコピーしました