HttpException no capturado por onError ()

Estoy haciendo una request a un server de background utilizando Retrofit2 y RxJava2. Cuando la respuesta es 200 o 201, todo funciona bien. Cuando la respuesta del server es 409 o 503 y se lanza una HttpException , onError() Observable no onError() la falla de la aplicación.

La request que estoy haciendo es así:

 @POST("users/sign-up") fun register(@Body register: RegisterBody): Observable<User> 

El fragment de código donde realizo la request es esto ( applySchedulers() solo aplica subscribeOn() y observeOn() ):

 api.register(body) .compose(applySchedulers()) .subscribe( { user -> onNextRegister(user.id, email.toString(), password.toString()) }, { error -> handleRegistrationError(error) }) 

La exception lanzada es a continuación:

  io.reactivex.exceptions.CompositeException: 2 exceptions occurnetworking. ComposedException 1 : retrofit2.adapter.rxjava2.HttpException: HTTP 503 Unavailable ComposedException 2 : kotlin.NotImplementedError: An operation is not implemented: not implemented 

¿Cómo puedo evitar que la aplicación se bloquee incluso si implementé onError() para el Observable? Tenga en count que el código de handleRegistrationError(error) todavía se ejecuta.