# Error: Unsupported argument: An argument named "validation" is not expected here. Did you mean "validation"?

- **ID:** `terraform/unsupported-argument-in-variable`
- **Domain:** terraform
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 88%

## Root Cause

A variable block contains a nested block or argument that is not valid for that variable type, often due to Terraform version differences where variable validation was introduced in v0.13.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Terraform v0.12 | active | — | — |
| Terraform v0.13 | active | — | — |
| Terraform v1.0 | active | — | — |

## Workarounds

1. **Update the required_version in terraform block: `terraform { required_version = ">= 0.13" }` then rerun `terraform init` to use a compatible Terraform version.** (95% success)
   ```
   Update the required_version in terraform block: `terraform { required_version = ">= 0.13" }` then rerun `terraform init` to use a compatible Terraform version.
   ```
2. **Remove the unsupported argument (e.g., validation block) and implement validation using a separate data source or condition in a local value.** (80% success)
   ```
   Remove the unsupported argument (e.g., validation block) and implement validation using a separate data source or condition in a local value.
   ```
3. **If using Terraform v0.12, upgrade to v0.13+ using the official upgrade guide: https://developer.hashicorp.com/terraform/upgrade-guides/0-13.** (90% success)
   ```
   If using Terraform v0.12, upgrade to v0.13+ using the official upgrade guide: https://developer.hashicorp.com/terraform/upgrade-guides/0-13.
   ```

## Dead Ends

- **Renaming the argument to the suggested name without checking the Terraform version** — The error often occurs because the feature (e.g., variable validation) doesn't exist in older versions; renaming won't help if the underlying feature is unsupported. (90% fail)
- **Moving the argument to a different block like locals or outputs** — Validation logic belongs to variable declarations; moving it elsewhere won't enforce input constraints and may cause runtime errors. (70% fail)
- **Adding a required_providers block with a newer version but not updating the Terraform version constraint** — Variable validation is a language feature, not provider-specific; the Terraform core version must be >=0.13 for validation blocks to work. (85% fail)
