Skip to content
Latchkey

Terragrunt "read_terragrunt_config" file not found in CI

The read_terragrunt_config() function loads another Terragrunt config to reuse its locals or inputs. It failed because the path it was given does not exist on the runner, or the target file itself has a parse error.

What this error means

terragrunt fails while evaluating read_terragrunt_config(...) with a file-not-found or parse error naming the config path you passed.

terragrunt
ERRO[0000] Error: Error in function call
  on terragrunt.hcl line 3, in locals:
   3:   common = read_terragrunt_config(find_in_parent_folders("common.hcl"))
Call to function "read_terragrunt_config" failed: could not find common.hcl in any parent folder.

Common causes

The referenced config file is not present

The path (often via find_in_parent_folders()) points at a file that a partial checkout excluded or that does not exist in the tree.

The target config has its own error

The file exists but fails to parse or references something undefined, so reading it propagates the failure.

How to fix it

Confirm the config path exists on the runner

  1. List the parent folders to verify the target file is checked out.
  2. Fix the filename passed to find_in_parent_folders() if it differs.
  3. Re-run once the file is reachable.
terragrunt.hcl
locals {
  common = read_terragrunt_config(find_in_parent_folders("common.hcl"))
}

Validate the target config separately

Run hclvalidate in the referenced config directory to surface its own parse error.

Terminal
terragrunt hclvalidate --terragrunt-working-dir path/to/config

How to prevent it

  • Use full checkouts so referenced parent configs are always present.
  • Keep shared config filenames stable across the repo.
  • Validate configs in CI before they are read by other modules.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →