Loading...
Loading...
### Terraform Version ```shell terraform --version Terraform v1.14.3 on darwin_arm64 ``` ### Terraform Configuration Files ``` locals { template = "$${service_name}-$${environment}-$${location}-$${resource}" base_vars = { environment = "test", service_name = "aws", location = "use1" } } output "s3_name" { value = templatestring(local.template, local.base_vars, {resource = "s3_bucket"}) } ``` ### Debug Output ``` 2026-01-13T11:26:42.739-0500 [INFO] Terraform version: 1.14.3 2026-01-13T11:26:42.739-0500 [DEBUG] using github.com/hashicorp/go-tfe v1.94.0 2026-01-13T11:26:42.739-0500 [DEBUG] using github.com/hashicorp/hcl/v2 v2.24.0 2026-01-13T11:26:42.739-0500 [DEBUG] using github.com/hashicorp/terraform-svchost v0.1.1 2026-01-13T11:26:42.739-0500 [DEBUG] using github.com/zclconf/go-cty v1.16.3 2026-01-13T11:26:42.739-0500 [INFO] Go runtime version: go1.25.5 2026-01-13T11:26:42.739-0500 [INFO] CLI args: []string{"terraform", "plan"} 2026-01-13T11:26:42.739-0500 [TRACE] Stdout is a terminal of width 190 2026-01-13T11:26:42.739-0500 [TRACE] Stderr is a terminal of width 190 2026-01-13T11:26:42.739-0500 [TRACE] Stdin is a terminal 2026-01-13T11:26:42.739-0500 [DEBUG] Attempting to open CLI config file: /Users/muaztahir/.terraformrc 2026-01-13T11:26:42.739-0500 [DEBUG] File doesn't exist, but doesn't need to. Ignoring. 2026-01-13T11:26:42.739-0500 [DEBUG] ignoring non-existing provider search directory terraform.d/plugins 2026-01-13T11:26:42.739-0500 [DEBUG] ignoring non-existing provider search directory /Users/muaztahir/.terraform.d/plugins 2026-01-13T11:26:42.739-0500 [DEBUG] ignoring non-existing provider search directory /Users/muaztahir/Library/Application Support/io.terraform/plugins 2026-01-13T11:26:42.739-0500 [DEBUG] ignoring non-existing provider search directory /Library/Application Support/io.terraform/plugins 2026-01-13T11:26:42.740-0500 [INFO] CLI command args: []string{"plan"} 2026-01-13T11:26:42.743-0500 [TRACE] Meta.Backend: no config given or present on disk, so returning nil config 2026-01-13T11:26:42.744-0500 [TRACE] Meta.Backend: backend has not previously been initialized in this working directory 2026-01-13T11:26:42.744-0500 [TRACE] Meta.Backend: using default local state only (no backend configuration, and no existing initialized backend) 2026-01-13T11:26:42.744-0500 [TRACE] Meta.Backend: instantiated backend of type 2026-01-13T11:26:42.744-0500 [DEBUG] checking for provisioner in "." 2026-01-13T11:26:42.745-0500 [DEBUG] checking for provisioner in "/opt/homebrew/bin" 2026-01-13T11:26:42.745-0500 [TRACE] Meta.Backend: backend does not support operations, so wrapping it in a local backend 2026-01-13T11:26:42.746-0500 [INFO] backend/local: starting Plan operation 2026-01-13T11:26:42.748-0500 [TRACE] backend/local: requesting state manager for workspace "default" 2026-01-13T11:26:42.748-0500 [TRACE] backend/local: state manager for workspace "default" will: - read initial snapshot from terraform.tfstate - write new snapshots to terraform.tfstate - create any backup at terraform.tfstate.backup 2026-01-13T11:26:42.748-0500 [TRACE] backend/local: requesting state lock for workspace "default" 2026-01-13T11:26:42.750-0500 [TRACE] statemgr.Filesystem: preparing to manage state snapshots at terraform.tfstate 2026-01-13T11:26:42.750-0500 [TRACE] statemgr.Filesystem: no previously-stored snapshot exists 2026-01-13T11:26:42.750-0500 [TRACE] statemgr.Filesystem: locking terraform.tfstate using fcntl flock 2026-01-13T11:26:42.750-0500 [TRACE] statemgr.Filesystem: writing lock metadata to .terraform.tfstate.lock.info 2026-01-13T11:26:42.750-0500 [TRACE] backend/local: reading remote state for workspace "default" 2026-01-13T11:26:42.750-0500 [TRACE] statemgr.Filesystem: reading latest snapshot from terraform.tfstate 2026-01-13T11:26:42.750-0500 [TRACE] statemgr.Filesystem: snapshot file has nil snapshot, but that's okay 2026-01-13T11:26:42.750-0500 [TRACE] statemgr.Filesystem: read nil snapshot 2026-01-13T11:26:42.750-0500 [TRACE] backend/local: populating backendrun.LocalRun for current working directory 2026-01-13T11:26:42.752-0500 [TRACE] terraform.NewContext: starting 2026-01-13T11:26:42.752-0500 [TRACE] terraform.NewContext: complete 2026-01-13T11:26:42.752-0500 [TRACE] backend/local: requesting interactive input, if necessary 2026-01-13T11:26:42.753-0500 [TRACE] Context.Input: Prompting for provider arguments 2026-01-13T11:26:42.753-0500 [TRACE] backend/local: running validation operation 2026-01-13T11:26:42.753-0500 [DEBUG] Building and walking validate graph 2026-01-13T11:26:42.753-0500 [TRACE] building graph for walkValidate 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.ConfigTransformer 2026-01-13T11:26:42.754-0500 [TRACE] ConfigTransformer: Starting for path: 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.ActionTriggerConfigTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.ActionInvokePlanTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.RootVariableTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.ModuleVariableTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.variableValidationTransformer 2026-01-13T11:26:42.754-0500 [TRACE] variableValidationTransformer: adding validation nodes for any existing variable evaluation nodes 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.LocalTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.OutputTransformer 2026-01-13T11:26:42.754-0500 [TRACE] OutputTransformer: adding s3_name as *terraform.nodeExpandOutput 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.checkTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.OrphanResourceInstanceTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.StateTransformer 2026-01-13T11:26:42.754-0500 [TRACE] StateTransformer: pointless no-op call, creating no nodes at all 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.AttachStateTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.OrphanOutputTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.AttachResourceConfigTransformer 2026-01-13T11:26:42.754-0500 [TRACE] Executing graph transform *terraform.graphTransformerMulti 2026-01-13T11:26:42.754-0500 [TRACE] (graphTransformerMulti) Executing graph transform *terraform.externalProviderTransformer 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Completed graph transform *terraform.externalProviderTransformer with new graph: local.base_vars (expand) - *terraform.nodeExpandLocal local.template (expand) - *terraform.nodeExpandLocal output.s3_name (expand) - *terraform.nodeExpandOutput ------ 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Executing graph transform *terraform.ProviderConfigTransformer 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Completed graph transform *terraform.ProviderConfigTransformer (no changes) 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Executing graph transform *terraform.MissingProviderTransformer 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Completed graph transform *terraform.MissingProviderTransformer (no changes) 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Executing graph transform *terraform.ProviderTransformer 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Completed graph transform *terraform.ProviderTransformer (no changes) 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Executing graph transform *terraform.PruneProviderTransformer 2026-01-13T11:26:42.755-0500 [TRACE] (graphTransformerMulti) Completed graph transform *terraform.PruneProviderTransformer (no changes) 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.RemovedModuleTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.AttachSchemaTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.ModuleExpansionTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.ExternalReferenceTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.ReferenceTransformer 2026-01-13T11:26:42.755-0500 [DEBUG] ReferenceTransformer: "local.base_vars (expand)" references: [] 2026-01-13T11:26:42.755-0500 [DEBUG] ReferenceTransformer: "local.template (expand)" references: [] 2026-01-13T11:26:42.755-0500 [DEBUG] ReferenceTransformer: "output.s3_name (expand)" references: [local.template (expand) local.base_vars (expand)] 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.AttachDependenciesTransformer 2026-01-13T11:26:42.755-0500 [TRACE] AttachDependenciesTransformer: output.s3_name (expand) depends on [] 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.attachDataResourceDependsOnTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.DestroyEdgeTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.pruneUnusedNodesTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.TargetsTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.QueryTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.ForcedCBDTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.ephemeralResourceCloseTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.CloseProviderTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.CloseRootModuleTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Executing graph transform *terraform.TransitiveReductionTransformer 2026-01-13T11:26:42.755-0500 [TRACE] Completed graph transform: local.base_vars (expand) - *terraform.nodeExpandLocal local.template (expand) - *terraform.nodeExpandLocal output.s3_name (expand) - *terraform.nodeExpandOutput local.base_vars (expand) - *terraform.nodeExpandLocal local.template (expand) - *terraform.nodeExpandLocal root - *terraform.nodeCloseModule output.s3_name (expand) - *terraform.nodeExpandOutput ------ 2026-01-13T11:26:42.755-0500 [DEBUG] Starting graph walk: walkValidate 2026-01-13T11:26:42.757-0500 [TRACE] vertex "local.template (expand)": starting visit (*terraform.nodeExpandLocal) 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.base_vars (expand)": starting visit (*terraform.nodeExpandLocal) 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.template (expand)": does not belong to any module instance 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.template (expand)": expanding dynamic subgraph 2026-01-13T11:26:42.758-0500 [TRACE] Expanding local: adding local.template as *terraform.NodeLocal 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.template (expand)": entering dynamic subgraph 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.base_vars (expand)": does not belong to any module instance 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.base_vars (expand)": expanding dynamic subgraph 2026-01-13T11:26:42.758-0500 [TRACE] Expanding local: adding local.base_vars as *terraform.NodeLocal 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.base_vars (expand)": entering dynamic subgraph 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.base_vars": starting visit (*terraform.NodeLocal) 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.base_vars": belongs to 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.template": starting visit (*terraform.NodeLocal) 2026-01-13T11:26:42.758-0500 [TRACE] vertex "local.template": belongs to 2026-01-13T11:26:42.759-0500 [TRACE] vertex "local.template": visit complete 2026-01-13T11:26:42.759-0500 [TRACE] vertex "local.base_vars": visit complete 2026-01-13T11:26:42.759-0500 [TRACE] vertex "root": starting visit (terraform.graphNodeRoot) 2026-01-13T11:26:42.759-0500 [TRACE] vertex "root": does not belong to any module instance 2026-01-13T11:26:42.759-0500 [TRACE] vertex "root": visit complete 2026-01-13T11:26:42.759-0500 [TRACE] vertex "local.template (expand)": dynamic subgraph completed successfully 2026-01-13T11:26:42.759-0500 [TRACE] vertex "local.template (expand)": visit complete 2026-01-13T11:26:42.759-0500 [TRACE] vertex "root": starting visit (terraform.graphNodeRoot) 2026-01-13T11:26:42.759-0500 [TRACE] vertex "root": does not belong to any module instance 2026-01-13T11:26:42.759-0500 [TRACE] vertex "root": visit complete 2026-01-13T11:26:42.759-0500 [TRACE] vertex "local.base_vars (expand)": dynamic subgraph completed successfully 2026-01-13T11:26:42.759-0500 [TRACE] vertex "local.base_vars (expand)": visit complete 2026-01-13T11:26:42.759-0500 [TRACE] vertex "output.s3_name (expand)": starting visit (*terraform.nodeExpandOutput) 2026-01-13T11:26:42.760-0500 [TRACE] vertex "output.s3_name (expand)": does not belong to any module instance 2026-01-13T11:26:42.760-0500 [TRACE] vertex "output.s3_name (expand)": expanding dynamic subgraph 2026-01-13T11:26:42.760-0500 [TRACE] Expanding output: adding output.s3_name as *terraform.NodeApplyableOutput 2026-01-13T11:26:42.760-0500 [TRACE] vertex "output.s3_name (expand)": entering dynamic subgraph 2026-01-13T11:26:42.760-0500 [TRACE] vertex "output.s3_name": starting visit (*terraform.NodeApplyableOutput) 2026-01-13T11:26:42.760-0500 [TRACE] vertex "output.s3_name": belongs to 2026-01-13T11:26:42.761-0500 [ERROR] vertex "output.s3_name" error: Too many function arguments 2026-01-13T11:26:42.761-0500 [TRACE] vertex "output.s3_name": visit complete, with errors 2026-01-13T11:26:42.761-0500 [TRACE] dag/walk: upstream of "root" errored, so skipping 2026-01-13T11:26:42.761-0500 [TRACE] vertex "output.s3_name (expand)": dynamic subgraph encountered errors: Too many function arguments 2026-01-13T11:26:42.761-0500 [ERROR] vertex "output.s3_name (expand)" error: Too many function arguments 2026-01-13T11:26:42.761-0500 [TRACE] vertex "output.s3_name (expand)": visit complete, with errors 2026-01-13T11:26:42.761-0500 [TRACE] dag/walk: upstream of "root" errored, so skipping 2026-01-13T11:26:42.761-0500 [TRACE] statemgr.Filesystem: removing lock metadata file .terraform.tfstate.lock.info 2026-01-13T11:26:42.761-0500 [TRACE] statemgr.Filesystem: unlocking terraform.tfstate using fcntl flock ``` ### Expected Behavior ``` terraform plan Changes to Outputs: + s3_name = "aws-test-use1-s3_bucket" You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure. ``` ### Actual Behavior terraform plan ╷ │ Error: Too many function arguments │ │ on template_string.tf line 13, in output "s3_name": │ 13: value = templatestring(local.template, local.base_vars, {resource = "s3_bucket"}) │ ├──────────────── │ │ while calling templatestring(template, vars) │ │ local.base_vars is object with 3 attributes │ │ local.template is "${service_name}-${environment}-${location}-${resource}" │ │ Function "templatestring" expects only 2 argument(s). ### Steps to Reproduce 1. `terraform plan` ### Additional Context I’m encountering an error when running this configuration stating that templatestring expects only two arguments. However, the Terraform documentation mentions that you can specify additional arguments to provide multiple variables to the template. ### References _No response_ ### Generative AI / LLM assisted development? _No response_
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.