朝起きたら、Microsoft Flowで設定した本来動いているはずの処理が動いていないというトラブルに出くわしましたメモ。
トラブルが起きていたFlow
トラブルが起きていたFlowは、RSSを使った非常に単純なもの
- 特定サイトのRSSを取得する
- 上記RSSの情報をBufferを使ってTwitterに予約投稿
- 上記RSSの情報をBufferを使ってFacebookに予約投稿
で、ログを見てみると1の時点で400 Bad Requestが出て処理に失敗していた。
原因
Microsoft FlowのRSSリーダーは、一般的な他のRSSリーダーより厳格にRSSを読むようで、RSSにInvalidなデータが含まれていると解析に失敗し400 Bad Requestを吐きます。
どこがおかしいのか分からないときは、とりあえずW3Cのフィードバリデータを使うのが吉です。
今回自分の環境で起こっていた問題は、RSSの中に表現不能な文字が含まれていた。
とりあえずフィードバリデータを使って全てのエラーを修正したら、Flowが無事に動くようになりました。
対策
とりあえず、手順として最後に、「Flowの流れをdiscordに通知」というアクションを追加(予定/いつも常用するOfficeアカウントではないため、モバイル通知が使えない)。
また、可能であればMicrosoft Flow自体のエラーレポートを、自分へのメールなど対応可能なものに変更する。
Microsoft Flowは裏側で別のサーバで処理しているのもあってか、ときどき他のサービスと違う挙動をします。そのためHTTPエラーコードが予定のものと異なるなど、ときどき予想外の挙動をすることがあります。
APIのリファレンスなどに頼るだけでなく、多方面で情報収集をする必要があります。
・・・やっぱりFlowって、普通にプログラミングするより難しくない?