どういう構成のときに起きるか
Power Automateのフローで、
- アクション:「共有メールボックスからメールを送信する」(Outlookコネクタ)
となっている場合。
送信元に「共有メールボックスA」を指定しているのに、そのフローに紐づいている接続のアカウントが、共有メールボックスAへのアクセス権限を持っていないケース。
なぜ起きるか
Power Automateのフローは、ボタンを押した人の権限ではなく、「フローに紐づけられた接続」のアカウントの権限で実行される。
-
誰が実行トリガーを引いたかは関係ない
-
フロー作成時(または接続選択時)に使ったアカウントに、共有メールボックスAへのアクセス権限があるかどうかがすべて
なので、 -
共有メールボックスAから送信したい → 共有メールボックスAへのアクセス権限を持つアカウントの接続を選ぶ必要がある
-
権限のないアカウントの接続のままだと、実行時にエラーになる
エラー内容
The specified object was not found in the store.
一見、共有メールボックス自体が存在しない・見つからないようなメッセージに見えるが、実際は「接続しているアカウントに、そのメールボックスへのアクセス権限がない」ことが原因。エラー文面から権限の話だと気づきにくいので注意。
対処
- フロー内の「共有メールボックスからメールを送信する」アクションの接続を確認する
- 共有メールボックスAへのアクセス権限(メンバーとして追加されている等)を持つアカウントを用意する
- Power Automate側でその接続を選び直す、または新規に接続を作成する
- ※Power Appsからではなく、Power Automate側の該当アクションで接続を変更すること
- 保存して再実行し、エラーが解消することを確認する
運用上、フローは特定の1アカウントの接続に依存し続ける形になるため、「誰が使う想定のフローか」よりも「どのアカウントで接続を作るか」を最初に決めておくと後々のトラブルが減る。
メモ
- 接続に紐づいたアカウントのパスワード変更や認証切れが起きると、フロー全体が止まる。定期的に接続状態を確認する
- 余談:PowerAppsでも似た構造の話がある。フォームカスタマイズはSharePointの一部品として動くため独立した接続確認画面を持たずSharePoint側の権限に委ねられるが、スタンドアロンのPowerAppsにおいて起動時に本人認証を取りにいく。どちらも「誰が使うか」ではなく「接続に紐づいたアカウントの権限」で動きが決まる点は共通している
今回、しばらく原因がわからずに悶々としてしまったが、何も難しい話ではなく、だいぶ当たり前な理由だった。チーン。