# 错误：不支持的参数：此处不期望名为 "validation" 的参数。您是指 "validation" 吗？

- **ID:** `terraform/unsupported-argument-in-variable`
- **领域:** terraform
- **类别:** config_error
- **验证级别:** ai_generated
- **修复率:** 88%

## 根因

变量块包含对该变量类型无效的嵌套块或参数，通常是由于 Terraform 版本差异导致，其中变量验证是在 v0.13 中引入的。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| Terraform v0.12 | active | — | — |
| Terraform v0.13 | active | — | — |
| Terraform v1.0 | active | — | — |

## 解决方案

1. ```
   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.
   ```
3. ```
   If using Terraform v0.12, upgrade to v0.13+ using the official upgrade guide: https://developer.hashicorp.com/terraform/upgrade-guides/0-13.
   ```

## 无效尝试

- **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% 失败率)
- **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% 失败率)
- **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% 失败率)
