{
  "id": "redis/sentinel-failover-no-good-replica",
  "signature": "SENTINEL: failover aborted - no good replica found for master 'mymaster'",
  "signature_zh": "SENTINEL：故障转移中止 - 未找到主节点 'mymaster' 的候选副本",
  "regex": "SENTINEL: failover aborted - no good replica found for master '(.*?)'",
  "domain": "redis",
  "category": "runtime_error",
  "subcategory": null,
  "root_cause": "Sentinel could not promote any replica because all replicas are either stale (data too old), down, or have priority 0.",
  "root_cause_type": "generic",
  "root_cause_zh": "Sentinel 无法提升任何副本，因为所有副本要么过时（数据太旧）、宕机，要么优先级为 0。",
  "versions": [
    {
      "version": "redis 6.2",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "redis 7.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "redis 7.2",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "Timeout increase does not fix stale or down replicas; failover will still abort.",
      "fail_rate": 0.65,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "If the replica is too stale, promoting it can cause data loss and inconsistency.",
      "fail_rate": 0.75,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Restarting sentinels does not change replica state; they will still see the same condition.",
      "fail_rate": 0.8,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Check replica replication lag and priority:\nINFO REPLICATION on each replica\nEnsure at least one replica has lag < sentinel-replica-down-after-milliseconds and priority > 0.\nIf lag is high, wait for sync or manually trigger replication from master.",
      "success_rate": 0.85,
      "how": "Check replica replication lag and priority:\nINFO REPLICATION on each replica\nEnsure at least one replica has lag < sentinel-replica-down-after-milliseconds and priority > 0.\nIf lag is high, wait for sync or manually trigger replication from master.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Adjust replica priority to 1 (default) on all replicas:\nCONFIG SET replica-priority 1\nThis ensures they are eligible for promotion.",
      "success_rate": 0.9,
      "how": "Adjust replica priority to 1 (default) on all replicas:\nCONFIG SET replica-priority 1\nThis ensures they are eligible for promotion.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Check replica replication lag and priority:\nINFO REPLICATION on each replica\nEnsure at least one replica has lag < sentinel-replica-down-after-milliseconds and priority > 0.\nIf lag is high, wait for sync or manually trigger replication from master.",
    "Adjust replica priority to 1 (default) on all replicas:\nCONFIG SET replica-priority 1\nThis ensures they are eligible for promotion."
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/",
  "official_doc_section": null,
  "error_code": "SENTINEL",
  "verification_tier": "ai_generated",
  "confidence": 0.84,
  "fix_success_rate": 0.8,
  "resolvable": "true",
  "first_seen": "2024-01-12",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}