The vespa-feed-client leaks threads when FeedClientBuilder.build() fails during the connection handshake. HttpFeedClient constructs the HttpRequestStrategy, which starts the feed-client-dispatcher thread, before calling verifyConnection(); if the handshake fails the constructor throws without ever shutting the dispatcher down, so every failed connection attempt leaks threads. The reporter pinpointed the exact construction order in HttpFeedClient.java and HttpRequestStrategy.java.