one update:

in your fix

you throw in ReactorNettyClientRequest::convertException - after falling thru - the IOException this way:

return new IOException(ex.getMessage(), cause);

In case of eg. a io.netty.handler.timeout.ReadTimeoutException both are null - the message plus the cause. So you loose the connex to ex and that it was a timeout that caused the exception.

Consumers like org.springframework.web.client.DefaultRestClient.DefaultRequestBodyUriSpec#createResourceAccessException don't have this information at hand and throw a ResourceAccessException with "null" message.

Originally posted by @helmut-hackl-dynatrace in https://github.com/spring-projects/spring-framework/issues/32952#issuecomment-2180520891