{
  "id": "kafka/group-join-timeout",
  "signature": "org.apache.kafka.common.errors.GroupJoinTimeoutException: Join group request timed out",
  "signature_zh": "组加入超时异常：加入组请求超时",
  "regex": "GroupJoinTimeoutException.*Join group request timed out",
  "domain": "kafka",
  "category": "runtime_error",
  "subcategory": null,
  "root_cause": "Consumer failed to join the consumer group within the configured session timeout or max.poll.interval.ms.",
  "root_cause_type": "generic",
  "root_cause_zh": "消费者未能在配置的会话超时或max.poll.interval.ms内加入消费者组。",
  "versions": [],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "Increasing session.timeout.ms alone doesn't fix slow processing; it only delays the timeout.",
      "fail_rate": 0.85,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Restarting the consumer doesn't resolve the underlying cause of slow processing or network issues.",
      "fail_rate": 0.9,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Increase max.poll.interval.ms to allow more time between polls, e.g., props.put(\"max.poll.interval.ms\", \"600000\");",
      "success_rate": 0.8,
      "how": "Increase max.poll.interval.ms to allow more time between polls, e.g., props.put(\"max.poll.interval.ms\", \"600000\");",
      "condition": "",
      "sources": []
    },
    {
      "action": "Reduce max.poll.records to process fewer records per poll, e.g., props.put(\"max.poll.records\", \"100\");",
      "success_rate": 0.75,
      "how": "Reduce max.poll.records to process fewer records per poll, e.g., props.put(\"max.poll.records\", \"100\");",
      "condition": "",
      "sources": []
    },
    {
      "action": "Use a separate thread for processing and call consumer.commitAsync() more frequently.",
      "success_rate": 0.85,
      "how": "Use a separate thread for processing and call consumer.commitAsync() more frequently.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "增加 max.poll.interval.ms 以允许轮询之间有更多时间，例如 props.put(\"max.poll.interval.ms\", \"600000\");",
    "减少 max.poll.records 以每次轮询处理更少的记录，例如 props.put(\"max.poll.records\", \"100\");",
    "使用单独的线程进行处理并更频繁地调用 consumer.commitAsync()。"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://kafka.apache.org/documentation/#consumerconfigs_session.timeout.ms",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.85,
  "fix_success_rate": 0.8,
  "resolvable": "true",
  "first_seen": "2024-03-15",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}