Loading...
Loading...
### Terraform Version ```shell $ terraform version Terraform v1.9.7 on linux_amd64 ``` ### Terraform Configuration Files * File: `root/github-lab/provider.tf` ```terraform terraform { required_providers { github = { source = "integrations/github" version = "6.3.1" } } } provider "github" { owner = "" } ``` * File: `root/github-lab/teams/github_importer_lab/terraform.tf` ``` terraform { required_providers { github = { source = "integrations/github" version = "6.3.1" } } } ``` * File: `root/github-lab/teams/github_importer_lab/main.tf` ```terraform module "repositories" { for_each = local.repositories source = "../../../../modules/github-repository/" name = each.key template = lookup(each.value, "template", null) is_template = lookup(each.value, "is_template", false) ## [redacted] } ``` * File: `modules/github-repository/terraform.tf` ```terraform terraform { required_providers { github = { source = "integrations/github" version = "6.3.1" } } } ``` * File: `modules/github-repository/variables.tf` ```terraform ## [redacted] variable "template" { default = null type = map(any) } ## [redacted] ``` * File: `modules/github-repository/main.tf` ```terraform resource "github_repository" "this" { name = var.name description = var.description visibility = var.visibility has_issues = var.has_issues has_projects = var.has_projects has_wiki = var.has_wiki has_downloads = var.has_downloads auto_init = var.auto_init is_template = var.is_template ## [redacted] dynamic "template" { for_each = var.template[*] content { owner = lookup(template.value, "owner", "") repository = lookup(template.value, "repository", "github-repository-template") } } ## [redacted] } ``` ### Debug Output ``` !!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!! panic: value for module.team_github_lab.module.repositories["repo"].var.template was requested before it was provided goroutine 259 [running]: runtime/debug.Stack() runtime/debug/stack.go:24 +0x5e github.com/hashicorp/terraform/internal/logging.PanicHandler() github.com/hashicorp/terraform/internal/logging/panic.go:84 +0x18b panic({0x2e7a540?, 0xc00e6e9a30?}) runtime/panic.go:770 +0x132 github.com/hashicorp/terraform/internal/terraform.(*Graph).walk.func1.1() github.com/hashicorp/terraform/internal/terraform/graph.go:59 +0x4c5 panic({0x2e7a540?, 0xc00e6e9a30?}) runtime/panic.go:770 +0x132 github.com/hashicorp/terraform/internal/namedvals.(*values[...]).GetExactResult(0x3e3a6e0, {{0xc006a71240, 0x2, 0x2}, {{}, {0xc008534618, 0x8}}}) github.com/hashicorp/terraform/internal/namedvals/values.go:88 +0x219 github.com/hashicorp/terraform/internal/namedvals.(*State).GetInputVariableValue(0x2fbd960?, {{0xc006a71240, 0x2, 0x2}, {{}, {0xc008534618, 0x8}}}) github.com/hashicorp/terraform/internal/namedvals/state.go:47 +0xe8 github.com/hashicorp/terraform/internal/terraform.(*evaluationStateData).GetInputVariable(0xc000e60fc0, {{}, {0xc008534618?, 0x20736569726f7469?}}, {{0xc005409b60, 0x27}, {0x1c, 0x10, 0x426}, {0x1c, ...}}) github.com/hashicorp/terraform/internal/terraform/evaluate.go:284 +0x249 github.com/hashicorp/terraform/internal/lang.(*Scope).evalContext(0xc000e61050, {0xc00e6e9850, 0x2, 0x2}, {0x0, 0x0}) github.com/hashicorp/terraform/internal/lang/eval.go:387 +0x1c72 github.com/hashicorp/terraform/internal/lang.(*Scope).EvalContext(...) github.com/hashicorp/terraform/internal/lang/eval.go:246 github.com/hashicorp/terraform/internal/lang.(*Scope).ExpandBlock(0xc000e61050, {0x3e19b50, 0xc0017b71e0}, 0x0?) github.com/hashicorp/terraform/internal/lang/eval.go:38 +0xa5 github.com/hashicorp/terraform/internal/terraform.(*BuiltinEvalContext).EvaluateBlock(0x1?, {0x3e19b50, 0xc0017b71e0}, 0xc006ac5650, {0x0?, 0x0?}, {{{{0x0, 0x0}}, {0x0, 0x0}}, ...}) github.com/hashicorp/terraform/internal/terraform/eval_context_builtin.go:316 +0xaa github.com/hashicorp/terraform/internal/terraform.(*NodeAbstractResourceInstance).plan(0xc007262908, {0x3e3d608, 0xc00bfc54a0}, 0xc00cb2fd40, 0xc0078e78c0, 0x0, {0x0, 0x0, 0x0}) github.com/hashicorp/terraform/internal/terraform/node_resource_abstract_instance.go:842 +0xbcb github.com/hashicorp/terraform/internal/terraform.(*NodeApplyableResourceInstance).managedResourceExecute(0xc0026d7d40, {0x3e3d608, 0xc00bfc54a0}) github.com/hashicorp/terraform/internal/terraform/node_resource_apply_instance.go:278 +0xafa github.com/hashicorp/terraform/internal/terraform.(*NodeApplyableResourceInstance).Execute(0x18?, {0x3e3d608?, 0xc00bfc54a0?}, 0x80?) github.com/hashicorp/terraform/internal/terraform/node_resource_apply_instance.go:145 +0x9a github.com/hashicorp/terraform/internal/terraform.(*ContextGraphWalker).Execute(0xc0007e1a40, {0x3e3d608, 0xc00bfc54a0}, {0x705ea6966600, 0xc0026d7d40}) github.com/hashicorp/terraform/internal/terraform/graph_walk_context.go:153 +0xbb github.com/hashicorp/terraform/internal/terraform.(*Graph).walk.func1({0x3501ba0, 0xc0026d7d40}) github.com/hashicorp/terraform/internal/terraform/graph.go:143 +0x83d github.com/hashicorp/terraform/internal/dag.(*Walker).walkVertex(0xc0077d4a80, {0x3501ba0, 0xc0026d7d40}, 0xc00b4d1500) github.com/hashicorp/terraform/internal/dag/walk.go:384 +0x2d7 created by github.com/hashicorp/terraform/internal/dag.(*Walker).Update in goroutine 103 github.com/hashicorp/terraform/internal/dag/walk.go:307 +0xff3 Error: Terraform exited with code 11. Error: Process completed with exit code 1. ``` ### Expected Behavior No crash. ### Actual Behavior Crashes. ### Steps to Reproduce 1. `terraform -chdir=root/github-lab/ init` 2. `terraform -chdir=root/github-lab/ plan -out=tfplan-github.tfplan -refresh=false` 3. `terraform -chdir=root/github-lab/ apply tfplan-github.tfplan` ### Additional Context I do use **one** provider definition in `root/github-lab/terraform.tf`. The only provider, I use is `integrations/github`. * Providers. ``` Providers required by configuration: . ├── provider[registry.terraform.io/integrations/github] 6.3.1 ├── module.team_github_lab │ ├── provider[registry.terraform.io/integrations/github] 6.3.1 │ ├── module.access │ │ └── provider[registry.terraform.io/integrations/github] 6.3.1 │ └── module.repositories │ └── provider[registry.terraform.io/integrations/github] 6.3.1 ``` * File tree. ``` . ├── README.md ├── modules │ ├── github-repository │ │ ├── main.tf │ │ ├── terraform.tf │ │ └── variables.tf │ └── github-repository-access │ ├── main.tf │ ├── terraform.tf │ └── variables.tf └── root └── github-lab ├── import.tf ├── main.tf ├── provider.tf ├── repositories │ └── github_importer_lab.yaml ├── teams │ └── github_importer_lab │ ├── main.tf │ ├── terraform.tf │ └── variables.tf └── terraform.tf ``` * Plan itself. ``` # module.team_github_lab.module.repositories["repo"] # (imported from "repo") ~ resource "github_repository" "this" { allow_auto_merge = false ~ allow_merge_commit = true -> false allow_rebase_merge = true ~ allow_squash_merge = true -> false ~ allow_update_branch = false -> true + archive_on_destroy = true archived = false ~ auto_init = false -> true default_branch = "master" ~ delete_branch_on_merge = false -> true description = null etag = [redacted] full_name = "[redacted]" git_clone_url = "[redacted]" has_discussions = false has_downloads = false ~ has_issues = true -> false ~ has_projects = true -> false has_wiki = false homepage_url = null html_url = "[redacted]" http_clone_url = "[redacted]" id = "[redacted]" is_template = false merge_commit_message = "PR_TITLE" merge_commit_title = "MERGE_MESSAGE" name = "[redacted]" node_id = "[redacted]" primary_language = "Groovy" private = true repo_id = 872958661 squash_merge_commit_message = "COMMIT_MESSAGES" squash_merge_commit_title = "COMMIT_OR_PR_TITLE" ssh_clone_url = "[redacted]" svn_url = "[redacted]" topics = [] visibility = "private" ~ vulnerability_alerts = false -> true web_commit_signoff_required = false } ``` ### References - #35843 - #35097
Click on a version to see all relevant bugs
Terraform Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.