There may be situations where you encounter timeout errors when attempting to access remote module registries due to a private or slow remote registry.
Terraform allows you to extend the default timeout using the
TF_REGISTRY_CLIENT_TIMEOUT environment variable.
The process of extending the registry timeout to resolve errors like "Error accessing remote module registry." is described below.
Error: Error accessing remote module registry
Failed to retrieve available versions for module "example" from tfe.mywebsite.com: net/http: request canceled (Client.Timeout or context cancellation while reading body).
This error means that the request to the remote registry was canceled due to a timeout.
Extending the Registry Timeout
To increase the timeout for remote module registry access, an environment variable called
TF_REGISTRY_CLIENT_TIMEOUT can be used. This variable allows users to define the maximum time Terraform should wait for HTTP requests to the module registry.
Follow these steps to extend the Terraform registry timeout:
1. Log into Terraform Environment: Start by logging in to your Terraform Cloud or Terraform Enterprise environment.
2. Find Your Workspace: Locate the workspace where you're facing the timeout issue.
3. Access Workspace Settings: Click on the workspace to access its settings.
4. Edit Environment Variables:
a. In the workspace settings, navigate to the "Variables" section.
b. Hit the "Edit" button to create a new environment variable.
c. Add the following:
d. Click "Save variable" to keep the environment variable.
5. Queue a Plan: Trigger a new run for your workspace to apply the changes. This will set the
TF_REGISTRY_CLIENT_TIMEOUT environment variable for this workspace.
6. Confirm the Changes: After the run finishes, Terraform should now utilize the extended registry timeout when connecting to remote module registries.