Agree with @demobox.

Could you detail a bit more what exactly is going wrong when your exception extends directly from `RuntimeException`? In the end, an `IllegalStateException` is also a `RuntimeException`, so it should be propagated the same way.

When the target server returns an error code, the [error handlers and retry handlers are invoked](https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java#L149-L154), to put the appropriate exception in place. Once the request should not be retried again, the [exception is propagated](https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java#L171). This is where the `propagateifInstanceOf` is invoked, but as both exceptions are `RuntimeExceptions` there should be no difference.

Could you please details the unexpected behavior you are experiencing?