.onErrorReturn() work in a similar fashion to .onErrorResumeNext(), but instead of using Observable to resume the flow, it takes the value unwrapped from the Observable. Consider the following example:
Observable.<String>error(new Error("Crash!"))
.onErrorReturn(throwable -> "Return")
.subscribe(item -> {
log("subscribe", item);
}, e -> log("subscribe", e));
We can see that we didn't need to wrap "Return" in the Observable class of any kind.