{
  "id": "redis/acl-category-inheritance-conflict",
  "signature": "ERR ACL categories 'write' and 'readonly' cannot be combined for user 'myuser'",
  "signature_zh": "ERR 用户 'myuser' 的 ACL 类别 'write' 和 'readonly' 不能组合",
  "regex": "ERR ACL categories '.+' and '.+' cannot be combined for user '.+'",
  "domain": "redis",
  "category": "config_error",
  "subcategory": null,
  "root_cause": "User configuration contains conflicting ACL category permissions; 'write' allows write commands while 'readonly' restricts to read-only, causing an invalid state.",
  "root_cause_type": "generic",
  "root_cause_zh": "用户配置包含冲突的 ACL 类别权限；'write' 允许写入命令，而 'readonly' 限制为只读，导致无效状态。",
  "versions": [
    {
      "version": "Redis 7.0.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Redis 7.2.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Redis 7.4.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "Adding more conflicting categories (e.g., both 'admin' and 'restricted') only exacerbates the conflict without resolving it.",
      "fail_rate": 0.9,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Deleting the user and recreating with the same conflicting categories will reproduce the same error.",
      "fail_rate": 0.95,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Ignoring the error and proceeding with other operations may leave the user in an inconsistent state, causing unpredictable behavior.",
      "fail_rate": 0.7,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Remove the conflicting category using ACL SETUSER myuser -readonly (or -write) to ensure only one set of permissions is active.",
      "success_rate": 0.95,
      "how": "Remove the conflicting category using ACL SETUSER myuser -readonly (or -write) to ensure only one set of permissions is active.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Recreate the user with a single category: ACL SETUSER myuser on >password +@readonly ~* to grant read-only access without write permissions.",
      "success_rate": 0.9,
      "how": "Recreate the user with a single category: ACL SETUSER myuser on >password +@readonly ~* to grant read-only access without write permissions.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Audit the ACL rules file (e.g., users.acl) and manually edit to remove the conflicting line, then reload with ACL LOAD.",
      "success_rate": 0.85,
      "how": "Audit the ACL rules file (e.g., users.acl) and manually edit to remove the conflicting line, then reload with ACL LOAD.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "使用 ACL SETUSER myuser -readonly（或 -write）移除冲突的类别，确保只有一组权限处于活动状态。",
    "使用单一类别重新创建用户：ACL SETUSER myuser on >password +@readonly ~* 授予只读访问权限，不包含写入权限。",
    "审计 ACL 规则文件（例如 users.acl）并手动编辑以移除冲突行，然后使用 ACL LOAD 重新加载。"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.88,
  "fix_success_rate": 0.95,
  "resolvable": "true",
  "first_seen": "2024-07-10",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}