title: Retrofit rxJava does not invoke onError for 500 internal server errors
body: <p>On android, I make server calls through retrofit and the server can sometimes return a 500 response.</p>
  
  <p>Is there a reason why onError does not get invoked in the subscriber?</p>
  
  <pre><code>            .subscribeOn(Schedulers.io())
              .observeOn(AndroidSchedulers.mainThread())
              .subscribe(new Subscriber&lt;Response&lt;Void&gt;&gt;() {
                  @Override
                  public void onCompleted() {
  
                  }
  
                  @Override
                  public void onError(Throwable e) {
                      if (isViewAttached()) {
                          getView().onError(e);
                      }
                  }
  
                  @Override
                  public void onNext(Response&lt;Void&gt; response) {
                      response.code() &lt;-- why would 500 here not get routed to the onError instead?
                  }
              });
  </code></pre>