Enricher hangs when used with REST endpoint utilizing netty when there is no response from the server but the server immediately closes the connection. In such case read timeout is ignored as connection is already closed.
The reason of this behavior is that org.apache.camel.component.netty.handlers.ClientChannelHandler.channelInactive contains following conditions for callback invocation when there was no response:
It works as expected when initially there had been UoW in Exchange (this is the case when using to). However, enricher by default (and by design) clears UoW for exchange it creates and this breaks above check.
Setting shareUnitOfWork for enrich works around the problem.