The transport client is the same code as the Elasticsearch server. It isn't a proper client, just a convenient thing to use as a client. It was so convenient we used it as the Java client for forever. But it has problems like this. We're working on writing an actual client with more normal dependencies.