Vscode: Help Wanted: Proxy testing

Created on 4 Jan 2017  ·  117Comments  ·  Source: microsoft/vscode

Hi! If you were pinged to this thread, it's because VS Code needs your help!

Users behind proxies have had a tough time lately, and we want to make sure we fix this. We've created a small app which will test your machine, network and environment to figure out which network stack works best for you.


App Screenshot

image

How can I help?

We ask you to:

  1. Download and extract the appropriate ZIP for your platform
  2. Run it
  3. Type your proxy URL in the input box
  4. Click Run Tests
  5. Be patient, it should eventually be done
  6. Copy the test results to your clipboard
  7. Finally, reply to this thread with:

    • Details about your machine (platform, OS)

    • Details about your network (proxy type, is it a corporate environment)

    • A list of the network-related features that don't work for you in VSCode

    • The results of the test

Example reply:

I'm running Windows 10, I am in a corporate environment and I know my proxy address. I can browse VS Code extensions but I can't install them.

[PASTE TABLE]

We thank you in advance!


@liaoya, @dfroze, @akcorp2003, @ruslanch, @bruceauyeung, @raphabi, @eric-brunel, @fazouane-marouane, @Msira10, @onybo, @ywmail, @foisonocean, @xuewang, @distums, @NeWbY100, @abargstaedt

Most helpful comment

@joaomoreno I updated to 1.9.1 today and was hoping this issue would be sorted out. Is there a time frame for this bug?

All 117 comments

I am running on Linux Mint 18.1. And there are 2 proxy (from which I can choose)

First (this is a simple one, best case scenario):

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Error |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS Node Agent | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTP Node Agent (not strict) | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS Node Agent (not strict) | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTP Electron | 0 | Error |
| HTTPS Electron | 0 | Error |

Second (this is more official one, and no, there is no user/pass needed):

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Error |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 301 | e11c1bd6271f7090bdcda9877a3280772fcb55bb |
| HTTPS Node Agent | 400 | 802eafc269a24a2b950e78b44807fbf95c8b0897 |
| HTTP Node Agent (not strict) | 301 | e11c1bd6271f7090bdcda9877a3280772fcb55bb |
| HTTPS Node Agent (not strict) | 400 | 802eafc269a24a2b950e78b44807fbf95c8b0897 |
| HTTP Electron | 0 | Error |
| HTTPS Electron | 0 | Error |

@dfroze What is your second proxy? What technology/protocol does it use? Did you configure your OS with your proxy settings? Can you use Google Chrome, does it work without any configuration?

@joaomoreno
What is your second proxy?

  • the second one is a more secured proxy that I should be using, but due to some restriction, it's more efficient to use the first proxy where it's less strict

What technology/protocol does it use?

  • all I know is that it's a Squid proxy same as the first proxy. But with vscode 1.7 there was no problems on either one.

Did you configure your OS with your proxy settings? Can you use Google Chrome, does it work without any configuration?

  • I added the proxy to the /etc/environment and /etc/bash.bashrc (should be enough for OS configuration), but I still need to add it to Google Chrome as a parameter "--proxy-server=" (don't know why I can't set it from chrome->settings->etc)

From @eric-brunel

OS : Windows 7 Enterprise 64bits
Browsers: I use Chrome, Firefox, and IE 11 without issue.

Without providing proxy URL:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS XHR | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS Electron | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |

Without providing credentials (only proxy server URL)

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS XHR | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 407 | 8f1b436c863fd1d25752e2e0d2837024766387b9 |
| HTTPS Node Agent | 407 | 8f1b436c863fd1d25752e2e0d2837024766387b9 |
| HTTP Node Agent (not strict) | 407 | 8f1b436c863fd1d25752e2e0d2837024766387b9 |
| HTTPS Node Agent (not strict) | 407 | 8f1b436c863fd1d25752e2e0d2837024766387b9 |
| HTTP Electron | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS Electron | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |

With Credentials

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS XHR | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS Node Agent (not strict) | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTP Electron | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |
| HTTPS Electron | 200 | 7a4223d9f38834aee278d439f5d59666cf964464 |

@joaomoreno Tried running your app in my environment. No results after running it for 2 hours. It could be my corporate proxy...

Hi,

On my end, with or without providing proxy URL (I didn't provide credentials).

|Test | Status | Hash or Error |
|-----------|----------|---------------|
|HTTP XHR | 200 |7a4223d9f38834aee278d439f5d59666cf964464 |
|HTTPS XHR| 200| 7a4223d9f38834aee278d439f5d59666cf964464|
|HTTP Node| 0| Error|
|HTTPS Node| 0| Error|
|HTTP Node (not strict)| 0| Error|
|HTTPS Node (not strict)| 0| Error|
|HTTP Node Agent| 0| Error|
|HTTPS Node Agent| 0| Error|
|HTTP Node Agent (not strict)| 0| Error|
|HTTPS Node Agent (not strict)| 0| Error|
|HTTP Electron| 200| 7a4223d9f38834aee278d439f5d59666cf964464|
|HTTPS Electron| 200| 7a4223d9f38834aee278d439f5d59666cf964464|

OS : Windows 7 Enterprise 64bits
Browsers: I use Chrome, Firefox, and IE 11 without issue.
Proxy: corporate ntlm proxy

I didn't try entering credentials, since vscode doesn't encrypt them (like what "nuget" does). So having the proxy credentials stored in clear in vscode is not an option.

OS : Windows 7 Pro 64bits
Browsers: I use Chrome, Firefox, and IE 11 without issue.
Proxy: corporate NTLM proxy

with Credentials: http://user:[email protected]:port

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTPS XHR | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTPS Node Agent (not strict) | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTP Electron | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTPS Electron | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |

So far so good, it appears both XHR and Electron are the best, since they benefit from the system's configuration, as expected.

Except @dfroze, who seems to not have it working. @dfroze does your system have the $HTTP_PROXY variable set? I believe Electron should pick this up.

@akcorp2003 I've improved the timeout mechanism. Can you try the latest version?

@joaomoreno I've looked it more in the problem with system proxy, apparently there is a way to set it (other then /etc/environment) that is better. By using the Network interface given by the OS there was a way to set the proxy manually which is different and better then the one set in bash :interrobang:

Was expecting that just by providing the $HTTP_PROXY environment variable or the Proxy URL from your proxy test application will be more then enough for the connection.

Here is re-test using the Network interface given by the OS on the second proxy (the problematic one).

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTPS XHR | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTPS Node Agent | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTP Node Agent (not strict) | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTPS Node Agent (not strict) | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTP Electron | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |
| HTTPS Electron | 200 | 29bea4fe728ba83229e162cfa2b5d373c4e458f7 |

Edited: Just to make sure there are no room for errors. The Network interface given by the OS i was referring to is the following for Linux Mint:
screenshot-from-2014-01-19-184455

@dfroze Great news!

OS : Windows 7 Enterprise 64bits
Browsers: I use Chrome, Firefox, and IE 10 without issue.
Proxy: with basic authentication

with Credentials: http://user:[email protected]:port

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 4ffb8a63098fa5ff43df7ea06456d002638d6c17 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

@abargstaedt
Have you tried not putting the proxy credentials and not putting the proxy?

Not yet but here it is w/o putting the proxy

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 95bc3e92f0286dd8d6b4f9c60491cd5cde04f526 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

And here with proxy set but w/o credentials

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 407 | 20661b66197593f47ec6d2f8a89a28418f016d03 |
| HTTPS Node Agent | 407 | 77e1d09affcd81e11c425f73bd941170b11c6aa7 |
| HTTP Node Agent (not strict) | 407 | 20661b66197593f47ec6d2f8a89a28418f016d03 |
| HTTPS Node Agent (not strict) | 407 | 77e1d09affcd81e11c425f73bd941170b11c6aa7 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Please don't hesitate to let me know if I can do anything more to help you. I appreciate your great work!

@abargstaedt What is strange about your setup is that the XHR and Electron methods don't work. Can you tell us more about your proxy setup? What technologies does it use?

Can you check around Chrome's network settings, and see if it is manually configured? I find it strange that Chrome works, but Code wouldn't.

I'm running CentOS 7.2, I am in a corporate environment and I know my proxy address. I can browse VS Code extensions but I can't install them. Our Proxy does not require authetication.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

@liaoya Can you check the comment from @dfroze, and see whether you can configure your proxy system-wide. Then give it another try, we want to make sure the XHR and Electron methods work.

I have a Windows 7 with Visual Code 1.8.1 which extension functions works with the same proxy setting as my Linux. The following is the output. I also try both 32 bits and 64 bits Windows version, the output is similar.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |

This time I don't comment all the proxy setting in /etc/environment and all the other settings, then reboot the system, the following is the output (I have run the test several time and I find sometimes error will be timeout, and timeout will be error). The proxy is set in test app and there is no environment variable now.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Error |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Error |
| HTTPS Electron | 0 | Timeout |

@joaomoreno Chrome and my other browsers are set up to use an automatic configuration script (proxy.pac). Then it prompts for user name and password (basic authentication).

For other applications that require internet access I have to set up the proxy manually. Normally this works with the pattern http://user:[email protected]:port. That way it works for npm, Bower, Git and it used to work for VSCode as well but not anymore.

I probably should also mention that some genius put the character '@' into the proxy password. So we have to work around that by replacing it with %40 in above mentioned pattern. Still it works for most applications.

In settings.json I removed the credentials from the "http.proxy" value and inserted the following line:
"http.proxyAuthorization": "Basic sOMeBASE64eNCODEdSTRING="
The base 64 encoded password above is a fake but it is the same header that we are using for Fiddler.

WHAT?

On Friday, January 6, 2017, abargstaedt notifications@github.com wrote:

@joaomoreno https://github.com/joaomoreno Chrome and my other browser
are set up to use an automatic configuration script (proxy.pac). Then it
prompts for user name and password (basic authentication).

For other applications that require internet access I have to set up the
proxy manually. Normally this works with the pattern
http://user:[email protected]:port. That way it works work npm, Bower, Git
and it used to work for VSCode as well but not anymore.

I probably should also mention that some genius put the character '@' into
the proxy password. So we have to work around that by replacing it with
%40 in above mentioned pattern. Still it works for most applications.

In settings.json I removed the credentials from the "http.proxy" value and
inserted the following line:
"http.proxyAuthorization": "Basic sOMeBASE64eNCODEdSTRING="
The base 64 encoded password above is a fake but it is the same header
that we are using for Fiddler.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/18103#issuecomment-270882355,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXjFUGFRKLaYShuZe8XPqb7uxqc_9S6Aks5rPiAegaJpZM4LajsO
.

@R3V07T We are glad that you reacted to the post and pretty sure there a lot of us shocked about it (maybe). But do please right something more useful and more detailed next time :laughing:

I am running Windows 10 Enterprise and I know the proxy address. I can browse VS Code extensions but I can't install them.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 407 | 94efd26b8804f75088643e6ed7c08d8184720420 |
| HTTPS Node Agent | 407 | 3fe64ea065031c0df319d3a76871c56709238e64 |
| HTTP Node Agent (not strict) | 407 | 94efd26b8804f75088643e6ed7c08d8184720420 |
| HTTPS Node Agent (not strict) | 407 | 3fe64ea065031c0df319d3a76871c56709238e64 |
| HTTP Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |

That's great news that xhr and electron are widely functional.
For proxy configuration through pac files, it is already supported by electron https://github.com/electron/brightray/pull/123
I don't know about prompting for credentials though...

Please take a look at my results between Windows and Linux. XHR and Electron both work on Windows (so the extension function works). The really problem is that Windows work and Linux fail with the same proxy configuration.

@liaoya
Does Chrome/Chromium work perfectly on your linux? Does it require a "--proxy-server" flag to work properly?

Thanks for doing this, my network environment was already a nightmare and things have got worse recently 😞

I'm running Mac OS X El Capitan 10.11.6, I am in a (Windows-based) corporate environment and I know my proxy address. We use an authenticated proxy which seems to work fine with Basic auth, as I can run npm install / update etc. I have http.proxy and https.proxy set in environment variables and config files all over the place.

The killer issue for my environment (I think) is that our proxy (a Cisco Web Security Appliance, version 9.0.1) is a man-in-the-middle SSL sniffing proxy, which opens all SSL traffic and then re-signs it with locally generated keys which we must manually trust on our computers. I have the trusted keys added to a local cert.pem file, and have that configured with cafile = <path-to-cert.pem> in my .npmrc.

I used to be able to upgrade VSCode, and browse and install VS Code extensions. Now I can only see the extensions I have installed, and can't browse, install or upgrade extensions or VSCode itself.

I used to have http.proxy and https.proxy declared in my settings.json, set as http://<username:password>@proxyname:8080 (and the https version), same as they are set in my environment variables. I've tried taking the username/password pair off and adding a Base64 encoded user:pass string to the http.proxyAuthorization setting, but that didn't work.

Here are my results from running the app with no proxy set in the box:

image

(the text box in the app won't let me copy from it 😠 )

Here are my results with my bare proxy URL set, but no included user/pass:

image

Here are my results with my username and password appended to the front of the proxy URL:

image

@fazouane-marouane
With the hint you given. I guess I find the real problem in My CentOS 7. HTTP XHR and HTTP Electron ignore the proxy URL setting in the test app. They only use GNOME proxy setting.

I find this when the chrome does not work with the default configuration. So I want to set the proxy manually. When the chrome show the proxy setting dialog, _it's GNOME proxy setting_ GUI (From https://wiki.archlinux.org/index.php/proxy_settings#Proxy_settings_on_GNOME3, it said 'Some programs like Chromium prefer to use the settings stored by gnome.'). Then I set proxy in GNOME system wide configuration, the HTTP XHR and HTTP Electron works even without proxy setting in test app. And Visual Code extension function work also.

This is default GNOME 3 system wide configuration
network-proxy-none

The following is manual configuration
network-proxy-manual

@ocean I just published a new version of this tool which fixes the copy-paste issue and adds an optional Certificate Authority file field. If you have the PEM file, just select it there and try it again. 👍

@joewood, coming from #17360, can you give this a try, also selecting a PEM file for your self signed certificates?

Lo behold, my corporate proxy is playing again.

I'm running Mac OSX 10.11.6, corporate environment, no idea how our proxy is set up. I cannot browse for new extensions and updating extensions do not work.

Basing off of the format

http://proxy.com

screen shot 2017-01-09 at 9 11 56 am

Following format

https://proxy.com

screen shot 2017-01-09 at 9 20 19 am

Following format

http://proxy.com:8080

screen shot 2017-01-09 at 9 14 34 am

And with password and username:

http://user:[email protected]

screen shot 2017-01-09 at 9 18 05 am

And with password and user in different format:

http://user:[email protected]:8080

screen shot 2017-01-09 at 9 18 05 am

Thanks for handling this issue!

Running the v. 3 of the tool:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |

Selecting the ca-certificates.crt file didn't have much impact (although it should, because npm and node does work with it set):

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |

Also, no difference in output selecting the individual pem files. The root CA file seems to be ignore for the tests that I ran.

Didn't read that you had updated a new version. Here are my tests running the new version.

I'm running Mac OSX 10.11.6, corporate environment, no idea how our proxy is set up. I cannot browse for new extensions and updating extensions do not work.

Basing off of the format

http://proxy.com

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 60ea5cc9f37e7ed0b02b4ab3732a5ef7b21b7a6d |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Following format

https://proxy.com

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Following format

http://proxy.com:8080

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 407 | e461febaf0575d588f6e53c92ad1c72e659b48d3 |
| HTTPS Node Agent | 407 | 1561bc599168c3446e00d1fcb0ce94b0c7dab2e6 |
| HTTP Node Agent (not strict) | 407 | e461febaf0575d588f6e53c92ad1c72e659b48d3 |
| HTTPS Node Agent (not strict) | 407 | 1561bc599168c3446e00d1fcb0ce94b0c7dab2e6 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

And with password and username:

http://user:[email protected]

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

And with password and user in different format:

http://user:[email protected]:8080

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Again, thanks for handling this issue!

@akcorp2003
Which browser you use in Mac OS? How the proxy setting in browerser, it's wpad (https://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol) or not, you can obtain proxy setting from wpad server

I use Firefox on CentOS which maintains its own proxy setting configuration. But Chrome will use Gnome 3 setting.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 6c0d9fe6bf23fa178596d62795f7769dea07a63b |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Windows 7. Corperate Proxy

Proxy URL: http://username:[email protected]:8080

Chrome, Firefox and IE11 work fine.

VSCode 1.7x and previous worked with

"http.proxy": "http://username:[email protected]:8080",
"http.proxyStrictSSL": false,

The features that no longer work in VSCode are only that I cannot access the Marketplace. I get no error in VSCode when I try to access the market place, only installed extensions are displayed.

@martinmcwhorter Do you happen to know how your Chrome network settings are configured?

@joaomoreno The manual windows Proxy setting is the same as what is above

Address: 10.xxx.xxx.xxx  Port: 8080

Unfortunately this may be overridden by an automatic configuration spript (proxy PAC).

The proxy.pac file is very obtuse. Using the tools in chrome url chrome://net-internals/#events I was able to determine that it is using the same host:port as above:

19670: HTTP_STREAM_JOB
https://marketplace.visualstudio.com/
Start Time: 2017-01-10 12:25:55.266

t=229981 [st=0] +HTTP_STREAM_JOB  [dt=3]
                 --> alternative_service = "Uninitialized :0"
                 --> original_url = "https://marketplace.visualstudio.com/"
                 --> priority = "MEDIUM"
                 --> source_dependency = 19668 (URL_REQUEST)
                 --> url = "https://marketplace.visualstudio.com/"
t=229981 [st=0]   +PROXY_SERVICE  [dt=2]
t=229983 [st=2]      PROXY_SERVICE_RESOLVED_PROXY_LIST
                     --> pac_string = "PROXY 10.xxx.xxx.xxx:8080"
t=229983 [st=2]   -PROXY_SERVICE
t=229983 [st=2]    HTTP2_SESSION_POOL_FOUND_EXISTING_SESSION
                   --> source_dependency = 19285 (HTTP2_SESSION)
t=229984 [st=3]    HTTP_STREAM_JOB_BOUND_TO_REQUEST
                   --> source_dependency = 19668 (URL_REQUEST)
t=229984 [st=3] -HTTP_STREAM_JOB

Just to be clear, everywhere where I obfuscate an address with 10.xxx.xxx.xxx, it is always the same address.

@liaoya Here's my proxy settings:

screen shot 2017-01-10 at 8 25 18 am

(the proxy address, username, password, and bypass are whited out for obvious reasons)

I have no idea if my network is wpad or not. I probably cannot figure that out. Sorry... :(

@martinmcwhorter Do you have the URL for that PAC?

@akcorp2003 Under Automatic Proxy Configuration, is there a field with a URL for a PAC file?

@joaomoreno Yeah I see that there is a URL to a global.pac file.

@joaomoreno

Yes I do. It is internal. I will not post it.

@joaomoreno Thanks for rebuilding the tool with cert.pem support! 👍 (and for recognising this is an issue and building it in the first place 😀 )

Test results with PEM file loaded and my proxy specified as http://user:pass@proxyaddress:port :

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Test results with PEM file loaded and my proxy specified as SSL https://user:pass@proxyaddress:port :

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

So this looks like what is needed for my environment, the ability for VSCode to load and use my local custom cert.pem, which is specified in my SSL_CERT_FILE environment variable (standard for curl) and also in my ~/.npmrc config file with the cafile setting.

Hope this helps. Thanks again for the troubleshooting tool! 😄

Using Win7 x64 behind a corporate proxy and I _think_ it's just a normal proxy (I entered the URL for it manually in the OS Internet Options LAN Settings window). The only thing I've had trouble with in the app is when trying to interface with our github repositories.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |

@joaomoreno

If you want, I can give you screenshare access via Lync / Skype Business to a system experiencing this - it's behind a transparent https decrypt proxy with internally signed certs. I have access rights in case we need to modify for testing. I've also got packet captures of it too, but I'd have to share those privately for NDA (we have with MS already) - hit me up on email: stu.hall at rockstargames dot com and I can work with you on this.

We had a similar issue with nodejs / npm and adding the base64 cert path to the 'cacert' option in the .npmrc file resolved that, as it did for @ocean. As I mention though, we're running a transparent proxy (at least it would be if it didn't keep breaking things...) so there's no actual proxy URL configured anywhere.

@dotalchemy Thanks, that could be helpful. Did you try running this tool, making sure to provide it with the PEM file, which will get passed on to cacert?

I'm running Windows 10, I am in a corporate environment and I know my authenticated proxy address. I can't browse VS Code extensions and I can't install them.

Without proxy URL filled:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | f33922ab7e1e7f6b8f1bda3a64e5e9be0413fc44 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

With proxy URL filled (with pattern: http://user:[email protected]:8080):

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Tested with or without my system proxy.pac configuration, no changes.

Previous version of Visual Code allow me to browse and install extensions just by adding in settings.json:

{
  "http.proxy": "http://user:[email protected]:8080"
}

What happened? Is a correction planned soon?
Thanks!

So here I go:

OS: Xubuntu 16.04
Network: Corporate environment
Proxy Type: Unknown

Can't connect to the marketplace for even searching extensions. The "Check for updates" function stays on "Checking for upgrades" after click.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 9c12c2353013a39349082c6f8a6206a49a3dc48b |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

@joaomoreno

With .cer

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |

Without .cer

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS XHR | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Electron | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |

With proxyStrictSSL: false
image

What's the vscode equivalent of setting cacert? I can test that easy enough if it exists :)

@Jule- It's strange, that you mention that the previous version of VS Code worked with that setting, but when you use the same value in this sample app it doesn't seem to work. Can you check and re-check that the value is correct?

@diggamies Can you try setting your system's proxy settings properly and running this again?

@dotalchemy Excellent! There is no VSCode equivalent of cacert, yet.

@joaomoreno Already set the system proxy to my values. But do the /etc/environment needs proxy strings like http://username:[email protected]:8080/ or do you only write them without the username and password? For apt everything is working fine!

@diggamies Not a linux pro, maybe someone else knows the answer? For api to work properly, it must be configured somehow.

Hello,

OS: elementary OS 0.3.2 Freya (Ubuntu 14.04)
Network: Corporate environment
Proxy: http/https
I can't search extensions or install them

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 2263bc29ac91e595d7ec8687787dce2cd9fed94c |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

@Efluminor Are you sure your system has your proxy properly configured? Does Google Chrome just work without any configuration?

@joaomoreno I have double checked, there is something strange with your testing app:

1st run: I fill proxy URL with pattern http://user:[email protected]:8080 and then hit Run Tests:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 71ab7d28d9b28ee0bfb2bb189b6e5f03d93b4ec2 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

2nd run: I change nothing just hit again Run Tests:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Same config, 2 different results. If I restart the testing app again, same behavior. If I restart the testing app and let proxy URL empty, same behavior. No matter what I set in proxy URL I get same output, only the hash changes. Any clue?

Maybe another info, I don't remember well but when it worked in previous version of VS Code (don't remember which one btw, about one or two months ago), it is possible that I had these settings in VS Code:

{
  "http.proxy": "http://user:[email protected]:8080",
  "http.proxyStrictSSL": false
}

Our proxy have no certificate, I don't know how it can impact my results.

Jule- 407 means your proxy requires authentication, and you're either not providing it or providing it wrongly. If the request comes out differently, that's because your proxy server is returning different results every time you make the request. It can remember that you made a request and not return a 407. The connection can be HTTP 1.1 and stay open thus providing different results. In any case, you wanna try triple checking your proxy URL and authentication; other users have reported it to have worked. Also notice the protocol of it (http vs https).

@joaomoreno I know for the 407 response, I am constantly confronted to this kind of issue. And please be sure that I use the right URL (the second try I did not even trust my eyes and I made a copy/paste from my http_proxy environment variable). It works for everything except VS Code or your testing app (npm, jspm, yarn, Sublime Package Control, Visual Studio, ...).
All http and https flux go through the same proxy and it is not an https URL.

What kind of question may I ask to my network engineer in order to help you understand that issue?

Is that URL the only configuration you give out to all those other tools?

@joaomoreno yes!

Hello what's new

On Jan 13, 2017 7:42 AM, "Jule-" notifications@github.com wrote:

@joaomoreno https://github.com/joaomoreno yes!


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/18103#issuecomment-272473495,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXjFUIICO06e7760yVWKMHn0FFmsjqzJks5rR5tigaJpZM4LajsO
.

@Jule- @joaomoreno

Same issues for me. I used the correct proxy string which works for every other Tool, but VS Code and SSH connections. Don't know what the matter is though...

Hello,

OS: Windows 8 (64 bit)
Network: Corporate environment
Proxy: http
I can't search extensions or install them

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 2296db57eb5be0f32ed3679fa930878653f12e78 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTPS Node Agent (not strict) | 200 | c2d397827b2884c52ca1d6f7cff0381868a52371 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

I use the windows test app and find Electron and XHR only use proxy setting in global setting in IE.

@the-shank Can you try to find out more about your network? Is the proxy authenticated? Does the proxy rewrite HTTPS certificates? Do you have a PAC url? How about a PEM file?

@joaomoreno yes to both. The proxy requires authentication. Also it does rewrite HTTPS certificates (I know this because I was having issue in getting cargo (Rust package manager) setup due to this).

Unfortunately I am unable to find out the PAC url and PEM file..

@the-shank Can you reach out to your network admins to get the PAC url or the PEM file?

@joaomoreno I will try to find out and let you know. Thanks

OS Windows 7 behind a corporate proxy (with NTLM authentication)
.pac script available if I want
I can't browse nor update my extensions with latest vscode, but was able to do so with 1.7.1

With proxy : http://user%40domain:password@proxyurl:port/

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

With proxy set as .pac script (no user / password)

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 404 | f4488bc151aeefcbc93771ef3b86707b87ffee40 |
| HTTPS Node Agent | 405 | e17c7cbcb0283cd32205c5c3cd63b70bfdde4fb4 |
| HTTP Node Agent (not strict) | 404 | f4488bc151aeefcbc93771ef3b86707b87ffee40 |
| HTTPS Node Agent (not strict) | 405 | e17c7cbcb0283cd32205c5c3cd63b70bfdde4fb4 |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

With proxy set as : http://proxyurl:port (no credentials)

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 407 | 7a0b5de013a3086ad3feaadb82763baa54c3d754 |
| HTTPS Node Agent | 407 | 99173bd86c1b88fc21fe9d694ee26559d20e9a61 |
| HTTP Node Agent (not strict) | 407 | 7a0b5de013a3086ad3feaadb82763baa54c3d754 |
| HTTPS Node Agent (not strict) | 407 | 99173bd86c1b88fc21fe9d694ee26559d20e9a61 |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

with bad proxy url (on purpose)

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

Just tell me if you need more tests,

Regards

I'm running Windows 7, I am in a corporate environment and I know my proxy address. I cannot browse VS Code extensions.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 730b1374ea8b9d558a022116336a6d555c0142d0 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | c2452186458d630e4c8ccdb4b373a928614a7030 |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 200 | c2452186458d630e4c8ccdb4b373a928614a7030 |
| HTTPS Node Agent (not strict) | 200 | c2452186458d630e4c8ccdb4b373a928614a7030 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

I'm running Windows 7x64 using VSCode Insider, I am in a corporate environment and I know my proxy address. I can browse VS Code extensions but I can't install them.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bb |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bb |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bb |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bb |

I'm in the corporate environment running Windows 7 Professional SP1 64-bit (x64) and I know my proxy address.

The following test result when "Proxy URL" field value is empty:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

The following test result when "Proxy URL" field value is filled using this example, "http://proxy.com:8080".

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 407 | e74ab4bff5fa8ed037c27d8ca5b59110768cb256 |
| HTTPS Node Agent | 407 | 088723d252b9ebb28099d8ffac36780b437289b2 |
| HTTP Node Agent (not strict) | 407 | e74ab4bff5fa8ed037c27d8ca5b59110768cb256 |
| HTTPS Node Agent (not strict) | 407 | 088723d252b9ebb28099d8ffac36780b437289b2 |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

For your information, I have a proxy workaround for my Visual Studio Enterprise 2015 with Update 3, so I can connect to Visual Studio Team System (VSTS) and do work. Ignore the "bypasslist" setting, the proxy configuration I created was copied from my ASP.NET web applications.

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe.config

<configuration>
  <system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
        <proxy usesystemdefault="true" proxyaddress="http://proxy.com:8080" bypassonlocal="true" />
        <bypasslist>
          <add address="localhost" />
          <add address="local-secure\.[A-Za-z0-9_.]+\.com" />
          <add address="local-secure\.[A-Za-z0-9_.]+\.net" />
          <add address="local-secure\.[A-Za-z0-9_.]+\.org" />
          <add address="local\.[A-Za-z0-9_.]+\.com" />
          <add address="local\.[A-Za-z0-9_.]+\.net" />
          <add address="local\.[A-Za-z0-9_.]+\.org" />
        </bypasslist>
    </defaultProxy>
  </system.net>
</configuration>

I wish there is a GUI to enable and setup the proxy.

Let me know if you have any questions.

I'm running Ubuntu 16.04, I am in a corporate environment and I know my proxy address. I can't browse VS Code extensions, but I can check for updates .

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Here from #18920. I'm running VSCode in a Linux Mint 17.3 32-bit VM, on a Windows 7 Enterprise SP1 64-bit host. I'm using a proxy URL for connecting to the internet from the corporate environment (going through some Blue Coat backend). I also need to use self-signed certificates.

In Firefox (in the same Linux Mint VM, which I'm using atm to file this comment), I can access the internet using either the proxy URL or an automatic proxy config (wpad) URL, along with the certificates.

I ran the proxy-test application under three scenarios: no proxy, proxy URL only, and proxy URL + CA file. Results:

No Proxy

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Error |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 0 | Error |
| HTTPS Electron | 0 | Timeout |

With Proxy URL only

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Error |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

With Proxy URL + CA file

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Error |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Additionally, here's the console log in each case:

No Proxy

Failed to load resource: net::ERR_INSECURE_RESPONSE
Error: self signed certificate(…)
Error: self signed certificate(…)
Failed to load resource: net::ERR_EMPTY_RESPONSE
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)

With Proxy URL only

Failed to load resource: net::ERR_INSECURE_RESPONSE
Error: self signed certificate(…)
Error: self signed certificate in certificate chain(…)
Failed to load resource: net::ERR_EMPTY_RESPONSE
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)

With Proxy URL + CA file

Failed to load resource: net::ERR_INSECURE_RESPONSE
Error: self signed certificate(…)
Failed to load resource: net::ERR_EMPTY_RESPONSE
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)

The errors go down at each step :smile:. ERR_INSECURE_RESPONSE is reported for both http://code.visualstudio.com/docs/tools/vscecli and https://code.visualstudio.com/docs/tools/vscecli.

I repeated the tests on the Win7 x64 host, where Chrome is also installed and configured to use system settings that include the automatic proxy configuration and trusted certificates -- not sure if that has any impact. The results are _slightly_ different, but I don't see any ERR_INSECURE_RESPONSE:

No Proxy

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

Error: self signed certificate(…)
Error: self signed certificate(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)

With Proxy URL only

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

Error: self signed certificate(…)
Error: self signed certificate in certificate chain(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)

With Proxy URL + CA file

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

Error: self signed certificate(…)
Error: socket hang up(…)
Error: socket hang up(…)
Error: socket hang up(…)

I'm running Windows 7 x64 in a corporate environment and I know my proxy address.
I can browse VS Code extensions but I can't install them out of the box.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 2982e1ca1792257d0490471f45b587f3a8fe047d |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 407 | 8d601543df61ee8ad67f8b2de2d379b903757453 |
| HTTPS Node Agent | 407 | acffae394921f84588dad1fdb0a1262b47ac31e9 |
| HTTP Node Agent (not strict) | 407 | 8d601543df61ee8ad67f8b2de2d379b903757453 |
| HTTPS Node Agent (not strict) | 407 | acffae394921f84588dad1fdb0a1262b47ac31e9 |
| HTTP Electron | 200 | 845d74e708d7fe13c63f07bc102daefdccb50cad |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

My workaround so far: In Visual Studio 2015 i have to open "Tools >Extensions and Updates ...", select an entry of the "Online" navigation, then Visual Studio Code is able to install extensions within the next few minutes.

If I do this, the proxy test results look like this (error 407 is gone):

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 663d256ac2394abe712cdfee7b903e4332c95c2c |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Electron | 200 | ca7285ee32da02bb5f2cb0cfcc1fec27fcbf8802 |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

Hi @joaomoreno - it seems quite a lot of results have been collected now. It looks like the "HTTP/S Node Agent (not strict)" option is the one that gives 200 OK for most people.

I was wondering, is there a scheduled task with "the official dev team" now to add Node Agent Custom CA File support to VSCode? Or would you like a pull request from somebody covering some/all of this?

@ocean That solution is actually what we were using until January. Querying the marketplace changed to the XHR, which was probably not a good idea. @jrieken

We will address this in due time.

Crazy, lets not forget that performance made us use XHR. Establishing the secure connection blocks everything easily for a second or more

Maybe the solution is a wrapper/adapter of the previous implementation and
the newer XHR implementation. Default to the new non blocking XHR adapter
so most users see the performance benefits, but allow us stuck behind
corporate proxies to choose the previous implementation through a setting.

N30 ✍

On Jan 24, 2017 2:11 AM, "Martin McWhorter" notifications@github.com
wrote:

Maybe the solution is a wrapper/adapter of the previous implementation and
the newer XHR implementation. Default to the new non blocking XHR adapter
so most users see the performance benefits, but allow us stuck behind
corporate proxies to choose the previous implementation through a setting.

On Tue, 24 Jan 2017, 09:46 Johannes Rieken, notifications@github.com
wrote:

Crazy, lets not forget that performance made us use XHR. Establishing the
secure connection blocks everything easily for a second or more


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/Microsoft/vscode/issues/18103#issuecomment-274755960
,
or mute the thread
ueEJDRrP1lJlie0IuS910vVdL5tks5rVchVgaJpZM4LajsO>
.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/18103#issuecomment-274761745,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXjFUDhEgaQX3X1p8BNUvRfzu7aA1vhTks5rVc5hgaJpZM4LajsO
.

In case you were thinking of dropping support for XHR in favor of a pure nodejs solution, you should know that storing the proxy credentials in clear in vscode's configs is not a great solution and it will, understandably, scare away some users. 😞

May I suggest, that in that case you use secure strings to do that?
Something in the lines of

const crypto = require('crypto')

function encrypt(unsecureString, password, input_encoding = 'utf8', output_encoding = 'base64', algorithm = 'aes-256-cbc') {
    const cipher = crypto.createCipher(algorithm, password)
    let encrypted = cipher.update(unsecureString, input_encoding, output_encoding)
    encrypted += cipher.final(output_encoding)
    return encrypted
}

function decrypt(secureString, password, input_encoding = 'base64', output_encoding = 'utf8', algorithm = 'aes-256-cbc') {
    const decipher = crypto.createDecipher(algorithm, password)
    let decrypted = decipher.update(secureString, input_encoding, output_encoding)
    decrypted += decipher.final(output_encoding)
    return decrypted
}

let secret = "This is a secret"
let password = "p4$$wd"
let encryptedSecret = encrypt(secret, password)
let decryptedSecret = decrypt(encryptedSecret, password)

console.info("secret:", secret)
console.info("encryptedSecret:", encryptedSecret) // u7ROQRGI5ThBIz/SC5VcBfDng5RequewcOmCNiINS+4=
console.info("decryptedSecret:", decryptedSecret)
console.info("secret === decryptedSecret:", secret === decryptedSecret) // true

VSCode can retrieve the password using a popup screen at the first network request, for example.

@joaomoreno @jrieken Augh, sorry guys, I didn't mean to come across as being pushy 😕

I didn't realise the change to use an XHR request was based on performance improvement. You've done an excellent job on VSCode, the product is great in general, and obviously it was a good idea to choose a method that would improve the experience for more people over all.

I just get super frustrated at being stuck in my current corporate environment with its clueless ideas on "network security", fighting with some network-related problem or other nearly every day when I'd rather be working 😃

@fazouane-marouane Whilst I appreciate the ideas behind your security approach, the current limitations (sociopathy) of my corporate environment require me to have my network proxy credentials written in plain text in 16 different configuration files and environment variables across my system (as well as in several places inside each of the various development VMs I run), so having them in plain text in my VSCode configuration doesn't concern me at all.

I'm also required to change my password every 60 days. Luckily I have written an Ansible playbook to automate this task for me, otherwise I would be clinically insane by now 🙃

Hi, I'm running a Windows 7 64b OS, I have to go throught a corporate Squid proxy with a http protocol and authentification. I could not see and browse the extensions (no error shows) until an administrator makes part of the related domains available to anybody which is not a solution. I don't know yet if there are other network related problems, but I can't see why it would not be the case. A grep on the proxy's log shows that whatever my settings are (in the user's settings file or in http_proxy or https_proxy environment variables) requests for browsing the extensions never used them and were denied. I tried first with VSCode v1.8.1 and then with v1.7.2 wich shows Error 405. I'm a Software Architect and I try VSCode in the process of finding the best tool for our needs, and I am very disappointed to run into these proxy problems which disqualify VSCode when Sublime Text or WebStorm make the job with no problem! Thanks for your efforts to solve this, I hope this will be mastered quickly as the product looks promising!
Here are my results in different cases.

No proxy defined :

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

Proxy defined without authentification

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 404 | 931f40a68de40ffb277934e22518191f62b8ad35 |
| HTTPS Node Agent | 405 | fca649c71a1941b7c7bfa640993def623e04c8f1 |
| HTTP Node Agent (not strict) | 404 | 931f40a68de40ffb277934e22518191f62b8ad35 |
| HTTPS Node Agent (not strict) | 405 | fca649c71a1941b7c7bfa640993def623e04c8f1 |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

Proxy defined with authentification

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS XHR | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 404 | 931f40a68de40ffb277934e22518191f62b8ad35 |
| HTTPS Node Agent | 405 | fca649c71a1941b7c7bfa640993def623e04c8f1 |
| HTTP Node Agent (not strict) | 404 | 931f40a68de40ffb277934e22518191f62b8ad35 |
| HTTPS Node Agent (not strict) | 405 | fca649c71a1941b7c7bfa640993def623e04c8f1 |
| HTTP Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Electron | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |

Windows 7 64-bit, Bluecoat proxy in a corporate environment, authentication required
Searching, updating and installing extensions does not work
Checking for updates to VScode itself does work

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTPS Node Agent (not strict) | 200 | 071fae247ec7a37ed356521f9f2bbcabf03563bd |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Windows 10-1607 - Using Code 1.9.0-insider

Corporate proxy. Address is configured by PAC script but I know which proxy is assigned to me.

I do not authenticate using passwords, instead I have a smart card and Windows takes care of the authentication, so using username:password@url for proxy is not an option here.

I can search extensions but when trying to install I get a "end of central directory record signature found" error.

I can use any browser and can even install NuGet packages in Visual Studio 2015 as long as I change the nuget url from https to http.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTPS XHR | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTPS Node Agent | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTP Node Agent (not strict) | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTPS Node Agent (not strict) | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTP Electron | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTPS Electron | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |

Ubuntu 16.04 - Code 1.8.1

Corp NTLM proxy backed by local cntlm.

Can't browse/install/update extensions (requests are flying directly and fail).

Proxy URL from environment was ignored.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Error |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTPS Node Agent | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTP Node Agent (not strict) | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTPS Node Agent (not strict) | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTP Electron | 0 | Error |
| HTTPS Electron | 0 | Error |

Ubuntu 16.04 (x32)
Corporate proxy: squid/3.2.3, manual settings, with auth

Can't get extensions
rnvl1pypqzy

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 2d729632c61137b0dc4d0f54beaee2ad2c451ffe |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTPS Node Agent | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTP Node Agent (not strict) | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTPS Node Agent (not strict) | 200 | 2346ac793504a80139c5cf0e56181c38beabb836 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

My results are:

  • Win7 x64
  • user/pass corporate proxy

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 2d505ae37d16030d07b4cf2760222ca54b15603b |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 823aa493d97605885d7714e126f57915710a18e9 |
| HTTPS Node Agent | 200 | 823aa493d97605885d7714e126f57915710a18e9 |
| HTTP Node Agent (not strict) | 200 | 823aa493d97605885d7714e126f57915710a18e9 |
| HTTPS Node Agent (not strict) | 200 | 823aa493d97605885d7714e126f57915710a18e9 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

As a side note, Chrome/Chromoim works.

My result are:

  • Win7 x64
  • corporate proxy without username/password

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | e8298fb9c9f6b078bd856bc0b15d8d788f3156b8 |
| HTTPS XHR | 200 | 39950fe6c0d55b0f578fd996335ab12aa1ea1ac8 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 407 | 75c8afd6a9f6dffec274a47d07d19938ed93f56f |
| HTTPS Node Agent | 407 | b60f2bc94d410b6ec49761962e0105dd90b789e7 |
| HTTP Node Agent (not strict) | 407 | 75c8afd6a9f6dffec274a47d07d19938ed93f56f |
| HTTPS Node Agent (not strict) | 407 | b60f2bc94d410b6ec49761962e0105dd90b789e7 |
| HTTP Electron | 200 | 50269a72998bb8b68aa9c5dbcc37fdeab8a700fa |
| HTTPS Electron | 200 | 39950fe6c0d55b0f578fd996335ab12aa1ea1ac8 |

workaround that succeeded: using instead of Fiddler cntlm as local proxy seems to work.
Harri


win7 x64
corporate proxy with authentication
fiddler as proxy on pc

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |

win7 x64
corporate proxy with authentication

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |

OS : Windows 7 Enterprise 64bits
Browsers: I use Chrome, Firefox, and IE 11 without issue.
Proxy: Corporate environment. Proxy through a proxy.pac or directly with the IP

Without any information :

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 1099eab0bb38021c671b458bb383040fb15d2424 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

With proxy pac url :

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | ebee29ecdc54203da24f28fdd6e53d6472b8d6a4 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 404 | 48762b3a98cf0d32777c2e8690d26d82feb15877 |
| HTTPS Node Agent | 405 | dbe8537b9290e31721a552039c2cb904a606cc58 |
| HTTP Node Agent (not strict) | 404 | 48762b3a98cf0d32777c2e8690d26d82feb15877 |
| HTTPS Node Agent (not strict) | 405 | dbe8537b9290e31721a552039c2cb904a606cc58 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

With credentials in the proxy url :

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

@joaomoreno I updated to 1.9.1 today and was hoping this issue would be sorted out. Is there a time frame for this bug?

I think he added the milestone to be February 2017?

The fix will likely not come for February. This is an investigative issue.

We'll try to get it in for March.

I'm running Ubuntu 16.04 LTS, I am in a corporate environment and I know my proxy address.
I can browse VS Code extensions on browser and install them only by bash console using:
code --install-extension <ext>

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

First try without entering any proxy credentials (hope its using env HTTP_PROXY HTTPS_PROXY).

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 245ad0db2855ee34b1a17eba743bdb4187052b64 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 0 | Error |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 0 | Error |
| HTTPS Node Agent (not strict) | 0 | Error |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

I get the following results with Pproxy credentials set:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 0 | Timeout |
| HTTPS XHR | 0 | Timeout |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Please note, in most apps i have to set strict-ssl = false or ignore certificate stuff etc. to get https request to work

I'm running Windows 10, corporate domain and behind a proxy. I can browse the extensions but I'm having the Error: end of central directory record signature not found when I try to install them. I get the same result in the tests with the http and https proxy addresses, and with or without setting the user and password.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node Agent | 404 | 8cc9cd768faef1b60caa775d21ebd0ff40b0e905 |
| HTTPS Node Agent | 405 | 5ce07537405b461f5b0879977212fcff805a688c |
| HTTP Node Agent (not strict) | 404 | 8cc9cd768faef1b60caa775d21ebd0ff40b0e905 |
| HTTPS Node Agent (not strict) | 405 | 5ce07537405b461f5b0879977212fcff805a688c |
| HTTP Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |

Mac OSX 10.11.6, behind corporate firewall, network location set to "office" where proxy autodetect configured. All apps works (including updates for vscode itself) except VSCode extensions marketplace.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 0 | Timeout |
| HTTPS Node Agent | 0 | Timeout |
| HTTP Node Agent (not strict) | 0 | Timeout |
| HTTPS Node Agent (not strict) | 0 | Timeout |
| HTTP Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |

Windows 8, behind corporate firewall, proxy manualy configured. All apps works (including updates for vscode itself) except VSCode extensions marketplace: can´t browse can´t download

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | ab7b82dac8d9e8a10d0fef31f357ac7868fa4380 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | e5168a6626d9220c0f63967067bf6bb82f435946 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Windows 7, behind corporate proxy, I know my proxy address and have set both http.proxyStrictSSL (as false) and http.proxy.
I can check for updates of VS Code well, but I can't search or install the extensions.
During searching for extensions I get the same problem as in https://github.com/Microsoft/vscode/issues/18920 - net::ERR_INSECURE_RESPONSE.
Here's the result of proxy tests.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Electron | 0 | Timeout |

I'm running Windows 7 behind a corporate proxy, and I'm running both VSCode Version 1.9.1 and VSCode Version 1.10.0-insider. I have the http.proxy setting initialized, and also the http.proxyStrictSSL set to false. I am able to browse the extensions no problem, and see their details pages just fine. Whenever I try to install any extensions, though, I consistently get the "end of central directory record signature not found" error. I have run your utility and the following is the output:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 404 | 1a8ab1a9f5658dbfebf1663863a8c69a08b43e86 |
| HTTPS Node Agent | 400 | 58388882414776ea64f86b1dbf00bb8f3e3a08cd |
| HTTP Node Agent (not strict) | 404 | 1a8ab1a9f5658dbfebf1663863a8c69a08b43e86 |
| HTTPS Node Agent (not strict) | 400 | 58388882414776ea64f86b1dbf00bb8f3e3a08cd |
| HTTP Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |

Running v1.4.13 on vscode 1.9.1

I'm running Windows 7 Entreprise SP1,
I am in a corporate environment and I know my proxy address.
with Credentials: http://user:[email protected]:port
On env :
HTTP_PROXY set to http://user:[email protected]:port
HTTPS_PROXY set to http://user:[email protected]:port
Browsers: I use Chrome, Firefox, and IE 11 without issue.

Chrome and my other browsers are set up to use an automatic configuration script (proxy.pac).
Then it prompts for user name and password (basic authentication).

Same as https://github.com/Microsoft/vscode/issues/18103#issuecomment-270882355

I can browse VS Code extensions, I can install them, but I've this problem :
https://github.com/Microsoft/vscode/issues/20786
https://github.com/Microsoft/vscode/issues/14853

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS XHR | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node | 0 | Error |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 0 | Error |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Node Agent (not strict) | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTP Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |
| HTTPS Electron | 200 | 176510cd5998854b63794674d2203a246adee111 |

Hi joaomoreno -- it looks like this thread has been accumulating feedback since Jan 4. Do you have a fix yet? (Still unable to install extensions, already provided the protocol feedback.) Appreciate the work you are doing.

@joaomoreno told me that he will put it on the dev tasks for march. So you just have to wait for few days/weeks now.
There is also a slow workaround by manually installing extensions to vscode.
http://stackoverflow.com/questions/37071388/how-to-install-vscode-extensions-offline

This isn't comfortable but it helps if you are really in need of an important plugin.

You can also try and get off your proxy if you can. Installing extensions still work without the proxy.

Another workaround behind corporate proxy requiring authentication is to use Cntlm (http://cntlm.sourceforge.net/), Fiddler as proxy for some reason did not work for this purpose.

Closing this. We're taking the numbers for investigation.

Here is my results

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | 61c4ba2c1193626646647f82002399f69e9c6286 |
| HTTPS XHR | 200 | 61c4ba2c1193626646647f82002399f69e9c6286 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 407 | 2d505ae37d16030d07b4cf2760222ca54b15603b |
| HTTPS Node Agent | 407 | 2d505ae37d16030d07b4cf2760222ca54b15603b |
| HTTP Node Agent (not strict) | 407 | 2d505ae37d16030d07b4cf2760222ca54b15603b |
| HTTPS Node Agent (not strict) | 407 | 2d505ae37d16030d07b4cf2760222ca54b15603b |
| HTTP Electron | 200 | 61c4ba2c1193626646647f82002399f69e9c6286 |
| HTTPS Electron | 200 | 61c4ba2c1193626646647f82002399f69e9c6286 |

I can't install extensions because I have a proxy. I have VSCode 1.8.1.
I use Windows 7 Enterprise (64-bit).

Firewall functions as the proxy - no configuration possible or required:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | f571c24c885086ff0e2dcaeee13218f14affdd47 |
| HTTPS XHR | 200 | f571c24c885086ff0e2dcaeee13218f14affdd47 |
| HTTP Node | 302 | 19ab467486888159ef06a5fabb89cf69825dda72 |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 302 | 19ab467486888159ef06a5fabb89cf69825dda72 |
| HTTPS Node (not strict) | 301 | d5434ab83b609d9fe25244d1f2282b0b74a4f2b8 |
| HTTP Node Agent | 302 | 19ab467486888159ef06a5fabb89cf69825dda72 |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 302 | 19ab467486888159ef06a5fabb89cf69825dda72 |
| HTTPS Node Agent (not strict) | 301 | d5434ab83b609d9fe25244d1f2282b0b74a4f2b8 |
| HTTP Electron | 200 | f571c24c885086ff0e2dcaeee13218f14affdd47 |
| HTTPS Electron | 200 | f571c24c885086ff0e2dcaeee13218f14affdd47 |

@joaomoreno I'm running Windows 7 behind a corporate proxy, and I'm running width VSCode Version 1.9.1(before is 1.7 and no problem). I have the http.proxy setting initialized, and also the http.proxyStrictSSL set to false. I am able to browse the extensions no problem, and see their details pages just fine. Whenever I try to install any extensions, though, I consistently get the "end of central directory record signature not found" error. I have run your utility and the following is the output:

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 200 | f571c24c885086ff0e2dcaeee13218f14affdd47 |
| HTTPS XHR | 200 | f571c24c885086ff0e2dcaeee13218f14affdd47 |
| HTTP Node | 0 | Timeout |
| HTTPS Node | 0 | Timeout |
| HTTP Node (not strict) | 0 | Timeout |
| HTTPS Node (not strict) | 0 | Timeout |
| HTTP Node Agent | 302 | 6fb113e551c09793136812450713ebf84de9daea |
| HTTPS Node Agent | 0 | Error |
| HTTP Node Agent (not strict) | 302 | 6fb113e551c09793136812450713ebf84de9daea |
| HTTPS Node Agent (not strict) | 301 | d5434ab83b609d9fe25244d1f2282b0b74a4f2b8 |
| HTTP Electron | 200 | f571c24c885086ff0e2dcaeee13218f14affdd47 |
| HTTPS Electron | 200 | f571c24c885086ff0e2dcaeee13218f14affdd47 |

@angelia-yuqi just update your vscode to the latest version and it will work. You'd probably need to remove the proxy settings too if it doesn't work.

@fazouane-marouane I has updated vscode to 1.11.2 and the problem is not resolved and the proxy works in other solution.

Have you tried removing http proxy config from vscode?

Details about your machine (platform, OS)
Details about your network (proxy type, is it a corporate environment)
A list of the network-related features that don't work for you in VSCode

  • Im using Ubuntu 16.04 LTS
  • Do not now much about the proxy. The networks guys configured it once and dosent seen to remember exactly what they did. but this string usually works (works in ubuntu, eclipse, etc). I had asked about if it is a proxy with strict ssl (do not understand what is that, and they didnt too). Maybe i should fill the http.proxyAuthorization with something?
  • I cant install extensions or do anything related with network.

| Test | Status | Hash or Error |
|---|---|---|
| HTTP XHR | 407 | 072f40234b4008a9e815d3bb1ba00e7d0a2e9977 |
| HTTPS XHR | 0 | Error |
| HTTP Node | 503 | f4e7030b1ee793d7a5eb6fd69b45a118e0118bfb |
| HTTPS Node | 0 | Error |
| HTTP Node (not strict) | 503 | f4e7030b1ee793d7a5eb6fd69b45a118e0118bfb |
| HTTPS Node (not strict) | 0 | Error |
| HTTP Node Agent | 302 | 19ab467486888159ef06a5fabb89cf69825dda72 |
| HTTPS Node Agent | 301 | d5434ab83b609d9fe25244d1f2282b0b74a4f2b8 |
| HTTP Node Agent (not strict) | 302 | 19ab467486888159ef06a5fabb89cf69825dda72 |
| HTTPS Node Agent (not strict) | 301 | d5434ab83b609d9fe25244d1f2282b0b74a4f2b8 |
| HTTP Electron | 0 | Timeout |
| HTTPS Electron | 0 | Timeout |

Was this page helpful?
0 / 5 - 0 ratings

Related issues

vsccarl picture vsccarl  ·  3Comments

curtw picture curtw  ·  3Comments

DovydasNavickas picture DovydasNavickas  ·  3Comments

ryan-wong picture ryan-wong  ·  3Comments

lukehoban picture lukehoban  ·  3Comments