Модификация 2 + ошибка обработки Rxjava

Так что я уже получаю токен от Json, когда логин будет выполнен без проблем, и получу хеш

Но когда ответ от сервера является ошибкой, я не могу получить сообщение Json ({сообщение: «Ошибка: неправильный адрес электронной почты}»), потому что в onError мы получаем в качестве аргумента только Throwable, а не класс модели, как в on

Как я могу получить сообщение JSON от сервера onError ??

final Observable<TokenResponse> observable = Service.login(userCredentials);
    observable.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Subscriber<TokenResponse>() {
                String error="";

                @Override
                public void onCompleted() {
                    mLoginView.whenLoginSucess();
                }

                @Override
                public void onError(Throwable e) {

                    if (e instanceof HttpException) {
                        HttpException exception = (HttpException) e;
                        Response response = exception.response();
                        Converter<ResponseBody, ErrorFromServer> converter = new GsonConverterFactory()
                                .responseBodyConverter(ErrorFromServer.class, Annotation[0]);
                        ErrorFromServer error = converter.convert(response.errorBody());
                    }

                    mLoginView.errorText(error);

                    e.printStackTrace();

                }

                @Override
                public void onNext(TokenResponse tokenResponse) {


                    SharedPreferences.Editor editor = sharedP.edit();
                    editor.putString("hash", tokenResponse.getToken());
                    editor.commit();

                    //getString return key value "hash" if there is no value, returns null
                    hash = sharedP.getString("hash",null);




                }
            });

Код TokenResponse

public class TokenResponse {
@SerializedName("hash")
@Expose
private String token;

@SerializedName("message")
@Expose
private String message;


public String getMessage() {return message;}


public String getToken() {
    return token;
}

}

Ответы на вопрос(2)

Ваш ответ на вопрос