{
  "id": "terraform/invalid-nullable-attribute",
  "signature": "Error: Invalid attribute value: the given value is not suitable for attribute \"tags\": string values must not be null",
  "signature_zh": "错误：无效的属性值：给定的值不适用于属性 \"tags\"：字符串值不能为 null",
  "regex": "the given value is not suitable for attribute.*string values must not be null",
  "domain": "terraform",
  "category": "type_error",
  "subcategory": null,
  "root_cause": "A resource attribute that expects a string or map of strings is receiving a null value, often from a conditional expression or variable that evaluates to null.",
  "root_cause_type": "generic",
  "root_cause_zh": "期望字符串或字符串映射的资源属性接收到了 null 值，通常来自条件表达式或求值为 null 的变量。",
  "versions": [
    {
      "version": "Terraform 1.3.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Terraform 1.4.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Terraform 1.5.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "Some AWS services reject empty strings for required tags. The provider may still throw an error if the service requires non-empty values.",
      "fail_rate": 0.6,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "If the attribute is required, Terraform will error with 'Required attribute is not set'. Removing it doesn't fix the null issue.",
      "fail_rate": 0.85,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "try() only catches errors, not null values. If the expression evaluates to null without error, try() returns null.",
      "fail_rate": 0.75,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Use the coalesce() function to provide a default non-null value when the variable is null.",
      "success_rate": 0.9,
      "how": "Use the coalesce() function to provide a default non-null value when the variable is null.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Use conditional logic with try() and type constraints to ensure null values are replaced. Alternatively, define the variable with a default non-null value.",
      "success_rate": 0.85,
      "how": "Use conditional logic with try() and type constraints to ensure null values are replaced. Alternatively, define the variable with a default non-null value.",
      "condition": "",
      "sources": []
    },
    {
      "action": "If the attribute is optional and can be omitted, use a dynamic block or conditional to skip it entirely when the value is null.",
      "success_rate": 0.8,
      "how": "If the attribute is optional and can be omitted, use a dynamic block or conditional to skip it entirely when the value is null.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "使用 coalesce() 函数在变量为 null 时提供默认的非 null 值。",
    "使用条件逻辑和 try() 结合类型约束确保 null 值被替换。或者，为变量定义默认的非 null 值。",
    "如果属性是可选的并且可以省略，使用动态块或条件逻辑在值为 null 时完全跳过它。"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://developer.hashicorp.com/terraform/language/expressions/type-constraints",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.85,
  "fix_success_rate": 0.85,
  "resolvable": "true",
  "first_seen": "2024-02-14",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}