If you are using PowerShell and trying to run a terraform init
, you may get an error as follows:
Error: error accessing remote module registry
Failed to retrieve available versions for module ... from registry.terraform.io: Failed to request discovery document: Get "https://registry.terraform.io/.well-known/terraform.json": read tcp x.x.x.x:xxxx->x.x.x.x: wsarecv: An existing connection was forcibly closed by the remote host..
Note that you will still be able to make a successful curl
request, but terraform
will fail!
The problem
You need to make sure you have a proxy set.
The Windows Command Prompt lets you set a proxy as follows:
SET HTTP_PROXY=http://<USER>:<PASSWORD>@proxy.host.com:8080
SET HTTPS_PROXY=http://<USER>:<PASSWORD>@proxy.host.com:8080
SET NO_PROXY=.yourcompany.com
The solution
PowerShell will still fail, as it required the proxy environment variables to also be set as follows:
[Environment]::SetEnvironmentVariable("HTTP_PROXY","http://<USER>:<PASSWORD>@proxy.host.com:8080/", [EnvironmentVariableTarget]::Process)
[Environment]::SetEnvironmentVariable("HTTPS_PROXY","http://<USER>:<PASSWORD>@proxy.host.com:8080/", [EnvironmentVariableTarget]::Process)
[Environment]::SetEnvironmentVariable("NO_PROXY",".yourcompany.com", [EnvironmentVariableTarget]::Process)