Terraform Error: Module not found

Terraform cannot find a module specified in the configuration.

Understanding Terraform and Its Purpose

Terraform is an open-source infrastructure as code (IaC) tool created by HashiCorp. It allows developers to define and provision data center infrastructure using a high-level configuration language known as HashiCorp Configuration Language (HCL), or optionally JSON. Terraform is widely used for managing infrastructure across various cloud providers, enabling consistent and repeatable infrastructure deployments.

Identifying the Symptom: Error - Module Not Found

When working with Terraform, you might encounter the error message: Error: Module not found. This error typically occurs during the terraform init or terraform apply commands, indicating that Terraform is unable to locate a specified module in your configuration files.

Exploring the Issue: Why the Error Occurs

The Module not found error generally arises when Terraform cannot find a module due to incorrect module source paths, missing modules, or issues with module repositories. Modules in Terraform are containers for multiple resources that are used together, and they can be sourced from local paths, Terraform Registry, or version control systems like GitHub.

Common Causes of the Error

  • Incorrect module source path specified in the configuration.
  • Network issues preventing access to the module repository.
  • Typographical errors in the module source URL.
  • Missing or deleted module in the repository.

Steps to Resolve the Module Not Found Error

To resolve the Module not found error, follow these steps:

1. Verify the Module Source Path

Ensure that the module source path is correctly specified in your Terraform configuration file. For example, if you are sourcing a module from the Terraform Registry, the source should look like:

module "example" {
source = "hashicorp/example"
}

For modules from a Git repository, ensure the URL is correct:

module "example" {
source = "git::https://github.com/user/repo.git"
}

2. Check Network Connectivity

Ensure that your network connection is stable and that you have access to the module repository. You can test connectivity by trying to access the repository URL directly in a web browser or using curl:

curl -I https://github.com/user/repo.git

3. Validate Module Availability

Confirm that the module exists in the specified source location. If the module is hosted on a version control system, check that the repository and branch/tag are correct and accessible.

4. Update Terraform Configuration

If the module path or repository has changed, update your Terraform configuration to reflect the new source. After making changes, run:

terraform init

This command reinitializes the working directory and downloads the updated modules.

Additional Resources

For more detailed information on Terraform modules and troubleshooting, consider visiting the following resources:

Never debug

Terraform

manually again

Let Dr. Droid create custom investigation plans for your infrastructure.

Book Demo
Automate Debugging for
Terraform
See how Dr. Droid creates investigation plans for your infrastructure.

MORE ISSUES

Made with ❤️ in Bangalore & San Francisco 🏢

Doctor Droid