{
  "id": "grpc/status-details-truncated",
  "signature": "INTERNAL: grpc: status details truncated: received 4096 bytes but expected 8192",
  "signature_zh": "INTERNAL: grpc: 状态详情被截断: 收到 4096 字节但预期 8192 字节",
  "regex": "INTERNAL: grpc: status details truncated",
  "domain": "grpc",
  "category": "protocol_error",
  "subcategory": null,
  "root_cause": "The gRPC status details in the response trailer are larger than the configured max receive message size, causing truncation and an internal error.",
  "root_cause_type": "generic",
  "root_cause_zh": "响应尾部中的 gRPC 状态详情超过了配置的最大接收消息大小，导致截断并引发内部错误。",
  "versions": [
    {
      "version": "gRPC v1.58.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "gRPC v1.61.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "gRPC v1.65.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "Increasing the client's max send message size to match the expected size.",
      "why_fails": "The error is about receiving, not sending; max send size controls outgoing payloads, not incoming trailers.",
      "fail_rate": 0.9,
      "condition": "",
      "sources": []
    },
    {
      "action": "Setting the environment variable GRPC_VERBOSITY=DEBUG to get more details.",
      "why_fails": "Verbose logging does not resolve protocol-level truncation; it only adds noise.",
      "fail_rate": 0.95,
      "condition": "",
      "sources": []
    },
    {
      "action": "Reducing the number of fields in the status details on the server side without checking max receive size.",
      "why_fails": "If the max receive size is too small, even a single large detail can cause truncation; the fix must target the limit.",
      "fail_rate": 0.5,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Increase the client's max receive message size to accommodate larger status details: `channel = grpc.insecure_channel(target, options=[('grpc.max_receive_message_length', 16 * 1024 * 1024)])`",
      "success_rate": 0.95,
      "how": "Increase the client's max receive message size to accommodate larger status details: `channel = grpc.insecure_channel(target, options=[('grpc.max_receive_message_length', 16 * 1024 * 1024)])`",
      "condition": "",
      "sources": []
    },
    {
      "action": "On the server side, reduce the size of status details by using concise error messages or splitting details across multiple RPCs.",
      "success_rate": 0.8,
      "how": "On the server side, reduce the size of status details by using concise error messages or splitting details across multiple RPCs.",
      "condition": "",
      "sources": []
    },
    {
      "action": "If using gRPC-Web, configure the proxy to increase the max trailer size (e.g., Envoy's `max_request_headers_kb`).",
      "success_rate": 0.85,
      "how": "If using gRPC-Web, configure the proxy to increase the max trailer size (e.g., Envoy's `max_request_headers_kb`).",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Increase the client's max receive message size to accommodate larger status details: `channel = grpc.insecure_channel(target, options=[('grpc.max_receive_message_length', 16 * 1024 * 1024)])`",
    "On the server side, reduce the size of status details by using concise error messages or splitting details across multiple RPCs.",
    "If using gRPC-Web, configure the proxy to increase the max trailer size (e.g., Envoy's `max_request_headers_kb`)."
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://grpc.io/docs/guides/status-details/",
  "official_doc_section": null,
  "error_code": "ESTATUSTRUNC",
  "verification_tier": "ai_generated",
  "confidence": 0.85,
  "fix_success_rate": 0.9,
  "resolvable": "true",
  "first_seen": "2024-06-20",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}