RxJavaでのOnErrorFailedExceptionの原因

  • 3
    いいね
  • 0
    コメント

わりとそりゃそうだろという内容ですが、日本語での情報が見当たらず少し悩んだのでメモ。

クラッシュレポートを見ていて以下のようなスタックトレースが表示されていました。

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
中略
Fatal Exception thrown on Scheduler.Worker thread.
中略
Caused by: rx.exceptions.OnErrorFailedException: Error occurred when trying to propagate error to Observer.onError

このスタックトレースを読んでいっても自クラスの行が見当たらず具体的にどこが原因でクラッシュしているのかすぐに分かりませんでした。
結論から言えば、これはOnErrorメソッド内でハンドリングされていないExceptionが発生しているという内容のエラーでした。
OnErrorFailedExceptionと書いてあるのだからそりゃそうだろうという感じですが。。。

自分のケースではOnError内でのDialogFragmentの生成時にCan not perform this action after onSaveInstanceStateが発生しているために起こっているクラッシュでした。
クラッシュレポートでこのエラーを見たらOnError内の処理を見直してみましょう。