Proxy setting not used by SonarQube for IDE in VSCode

  • Operating system: Windows 11 Enterprise 25H2
  • SonarQube for VS Code plugin version: 5.6.0
  • Programming language you’re coding in: Mix
  • Is connected mode used: Yes
    • SonarQube Cloud, SonarQube Server, or SonarQube Community Build? (if one of the latter two, which version?): 2026.3

Description of the problem / question:

I see in VSCode output for extension that it is trying to download from Internet and it fails if you sit behind corporate proxy during lookup since it does not pick up any configured proxy configuration in VSCode it seems:

(Seen when starting VSCode)

2026-07-28 18:25:09.000 [info] [Info - 18:25:07.472] [sonarlint : SonarLint Server RPC sequential executor] Started embedded server on port 64120
2026-07-28 18:25:11.742 [info] [Info - 18:25:08.147] [sonarlint : sonarlint-plugin-download-0] Downloading omnisharp-net472 plugin version 1.39.15 from https://binaries.sonarsource.com/OmniSharp-Roslyn/1.39.15/omnisharp-net472.tar.gz
2026-07-28 18:25:11.925 [info] [Info - 18:25:08.147] [sonarlint : sonarlint-plugin-download-1] Downloading cpp plugin version 6.83.0.100813 from https://binaries.sonarsource.com/CommercialDistribution/sonar-cfamily-plugin/sonar-cfamily-plugin-6.83.0.100813.jar
2026-07-28 18:25:12.009 [info] [Info - 18:25:08.147] [sonarlint : sonarlint-plugin-download-2] Downloading csharp plugin version 10.29.0.143774 from https://binaries.sonarsource.com/Distribution/sonar-csharp-plugin/sonar-csharp-plugin-10.29.0.143774.jar
2026-07-28 18:25:12.061 [info] [Info - 18:25:08.148] [sonarlint : sonarlint-plugin-download-3] Downloading omnisharp-net6 plugin version 1.39.15 from https://binaries.sonarsource.com/OmniSharp-Roslyn/1.39.15/omnisharp-net6.0.tar.gz
2026-07-28 18:25:12.103 [info] [Info - 18:25:08.148] [sonarlint : sonarlint-plugin-download-4] Downloading omnisharp-mono plugin version 1.39.15 from https://binaries.sonarsource.com/OmniSharp-Roslyn/1.39.15/omnisharp-mono.tar.gz
2026-07-28 18:25:12.122 [info] [Error - 18:25:08.278] [sonarlint : sonarlint-plugin-download-4] Failed to download artifact with key omnisharp-mono
2026-07-28 18:25:12.126 [info] [Error - 18:25:08.279] [sonarlint : sonarlint-plugin-download-4] java.util.concurrent.CompletionException: java.net.UnknownHostException: binaries.sonarsource.com
	at java.base/java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:413)
	at java.base/java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2118)
	at org.sonarsource.sonarlint.core.http.ApacheHttpClientAdapter.waitFor(ApacheHttpClientAdapter.java:115)
	at org.sonarsource.sonarlint.core.http.ApacheHttpClientAdapter.get(ApacheHttpClientAdapter.java:92)
	at org.sonarsource.sonarlint.core.plugin.source.binaries.BinariesArtifactSource.downloadArtifact(BinariesArtifactSource.java:274)
	at org.sonarsource.sonarlint.core.plugin.source.binaries.BinariesArtifactSource.downloadAndVerify(BinariesArtifactSource.java:240)
	at org.sonarsource.sonarlint.core.plugin.source.binaries.BinariesArtifactSource.downloadAndCache(BinariesArtifactSource.java:173)
	at org.sonarsource.sonarlint.core.plugin.source.binaries.BinariesArtifactSource.downloadAndFireEvent(BinariesArtifactSource.java:181)
	at org.sonarsource.sonarlint.core.plugin.source.binaries.BinariesArtifactSource.lambda$scheduleDownload$7(BinariesArtifactSource.java:122)
	at org.sonarsource.sonarlint.core.plugin.source.UniqueTaskExecutor.lambda$scheduleIfAbsent$0(UniqueTaskExecutor.java:43)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.net.UnknownHostException: binaries.sonarsource.com
	at java.base/java.net.InetAddress$CachedLookup.get(InetAddress.java:988)
	at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1191)
	at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1818)
	at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1688)
	at org.apache.hc.client5.http.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:61)
	at org.apache.hc.client5.http.DnsResolver.resolve(DnsResolver.java:77)
	at org.apache.hc.client5.http.impl.nio.MultihomeIOSessionRequester.connect(MultihomeIOSessionRequester.java:113)
	at org.apache.hc.client5.http.impl.nio.DefaultAsyncClientConnectionOperator.connect(DefaultAsyncClientConnectionOperator.java:147)
	at org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager.connect(PoolingAsyncClientConnectionManager.java:499)
	at org.apache.hc.client5.http.impl.async.InternalHttpAsyncExecRuntime.connectEndpoint(InternalHttpAsyncExecRuntime.java:230)
	at org.apache.hc.client5.http.impl.async.AsyncConnectExec.doProceedToNextHop(AsyncConnectExec.java:222)
	at org.apache.hc.client5.http.impl.async.AsyncConnectExec.proceedToNextHop(AsyncConnectExec.java:197)
	at org.apache.hc.client5.http.impl.async.AsyncConnectExec.access$000(AsyncConnectExec.java:92)
	at org.apache.hc.client5.http.impl.async.AsyncConnectExec$1.completed(AsyncConnectExec.java:164)
	at org.apache.hc.client5.http.impl.async.AsyncConnectExec$1.completed(AsyncConnectExec.java:153)
	at org.apache.hc.client5.http.impl.async.InternalHttpAsyncExecRuntime$1.completed(InternalHttpAsyncExecRuntime.java:132)
	at org.apache.hc.client5.http.impl.async.InternalHttpAsyncExecRuntime$1.completed(InternalHttpAsyncExecRuntime.java:124)
	at org.apache.hc.core5.concurrent.BasicFuture.completed(BasicFuture.java:148)
	at org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager$3$1.leaseCompleted(PoolingAsyncClientConnectionManager.java:372)
	at org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager$3$1.completed(PoolingAsyncClientConnectionManager.java:354)
	at org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager$3$1.completed(PoolingAsyncClientConnectionManager.java:300)
	at org.apache.hc.core5.concurrent.BasicFuture.completed(BasicFuture.java:148)
	at org.apache.hc.core5.pool.StrictConnPool.fireCallbacks(StrictConnPool.java:396)
	at org.apache.hc.core5.pool.StrictConnPool.lease(StrictConnPool.java:214)
	at org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager$3.<init>(PoolingAsyncClientConnectionManager.java:297)
	at org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager.lease(PoolingAsyncClientConnectionManager.java:292)
	at org.apache.hc.client5.http.impl.async.InternalHttpAsyncExecRuntime.acquireEndpoint(InternalHttpAsyncExecRuntime.java:119)
	at org.apache.hc.client5.http.impl.async.AsyncConnectExec.execute(AsyncConnectExec.java:152)
	at org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(AsyncExecChainElement.java:54)
	at org.apache.hc.client5.http.impl.async.AsyncProtocolExec.internalExecute(AsyncProtocolExec.java:206)
	at org.apache.hc.client5.http.impl.async.AsyncProtocolExec.execute(AsyncProtocolExec.java:171)
	at org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(AsyncExecChainElement.java:54)
	at org.apache.hc.client5.http.impl.async.AsyncHttpRequestRetryExec.internalExecute(AsyncHttpRequestRetryExec.java:114)
	at org.apache.hc.client5.http.impl.async.AsyncHttpRequestRetryExec.execute(AsyncHttpRequestRetryExec.java:219)
	at org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(AsyncExecChainElement.java:54)
	at org.apache.hc.client5.http.impl.async.ContentCompressionAsyncExec.execute(ContentCompressionAsyncExec.java:140)
	at org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(AsyncExecChainElement.java:54)
	at org.apache.hc.client5.http.impl.async.AsyncRedirectExec.internalExecute(AsyncRedirectExec.java:112)
	at org.apache.hc.client5.http.impl.async.AsyncRedirectExec.execute(AsyncRedirectExec.java:293)
	at org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(AsyncExecChainElement.java:54)
	at org.apache.hc.client5.http.impl.async.InternalAbstractHttpAsyncClient.executeImmediate(InternalAbstractHttpAsyncClient.java:389)
	at org.apache.hc.client5.http.impl.async.InternalAbstractHttpAsyncClient.lambda$doExecute$0(InternalAbstractHttpAsyncClient.java:245)
	at org.apache.hc.core5.http.nio.support.BasicRequestProducer.sendRequest(BasicRequestProducer.java:93)
	at org.apache.hc.client5.http.impl.async.InternalAbstractHttpAsyncClient.doExecute(InternalAbstractHttpAsyncClient.java:209)
	at org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:96)
	at org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:106)
	at org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:123)
	at org.sonarsource.sonarlint.core.http.ApacheHttpClientAdapter$CompletableFutureWrappingFuture.<init>(ApacheHttpClientAdapter.java:229)
	at org.sonarsource.sonarlint.core.http.ApacheHttpClientAdapter.executeAsync(ApacheHttpClientAdapter.java:277)
	at org.sonarsource.sonarlint.core.http.ApacheHttpClientAdapter.getAsync(ApacheHttpClientAdapter.java:97)
	... 11 more

VSCode setting “sonarlint.ls.vmargs” is set with standard Java proxy setting but is not picked up.

Hello @bjorn-gd,

Thanks can you share your "sonarlint.ls.vmargs":configuration? You can redact the actual values.

The downloads failing (binaries.sonarsource.com) are HTTPS connections. Java uses different system properties for HTTP and HTTPS proxies. Your sonarlint.ls.vmargs should look like this:

"sonarlint.ls.vmargs": "-Dhttps.proxyHost=proxy.company.com -https.proxyPort=8080 -Dhttps.nonProxyHosts=localhost|127.0.0.1"

If your proxy also handles HTTP traffic, add the http.* variants too.

Another option, since you’re on Windows 11 Enterprise, the simplest approach is to let Java read the proxy settings directly from Windows:

"sonarlint.ls.vmargs": "-Djava.net.useSystemProxies=true"

This tells the JVM to use whatever proxy is configured in Windows network settings, without needing to specify host/port manually.

Hope that helps.

Best regards,

Stevan

Thanks Stevan!

I forgot to try the second one you mentioned and that did the trick. However, when I changed it I detected the issue in my configuration. I defined “http.proxyHost”, “http.proxyPort” and “http.nonProxyHosts” but not “https.proxyHost” and “https.proxyPort” so that explains it. :slight_smile: According to spec “http.nonProxyHosts” shall be used for HTTPS as well.