{
  "topic": "errors.EPOCH_MISMATCH",
  "path": [
    "errors",
    "EPOCH_MISMATCH"
  ],
  "title": "EPOCH_MISMATCH — shard ownership epoch has changed",
  "synopsis": "Shard ownership is tracked by an epoch counter that increments whenever the cluster re-partitions. A write is rejected with this error when the writing node's cached epoch is stale — another node has since taken ownership of the shard. This prevents split-brain writes.",
  "body": "# errors.EPOCH_MISMATCH\n\n## NAME\n\nEPOCH_MISMATCH — a node attempted to write to a shard it no longer owns because the cluster epoch advanced.\n\n## SYNOPSIS\n\nHTTP: `409` `Conflict`. Retryable: `yes`.\n\n## DESCRIPTION\n\nShard ownership is tracked by an epoch counter that increments whenever the cluster re-partitions. A write is rejected with this error when the writing node's cached epoch is stale — another node has since taken ownership of the shard. This prevents split-brain writes.\n\nRetryable. The routing layer re-routes to the current shard owner on retry. Frequent recurrence indicates cluster instability or high re-partitioning frequency.\n\n## SEE ALSO\n\n- errors\n- errors.CONFLICT\n- errors.TX_CONFLICT\n",
  "sections": [
    {
      "name": "NAME",
      "body": "EPOCH_MISMATCH — a node attempted to write to a shard it no longer owns because the cluster epoch advanced."
    },
    {
      "name": "SYNOPSIS",
      "body": "HTTP: `409` `Conflict`. Retryable: `yes`."
    },
    {
      "name": "DESCRIPTION",
      "body": "Shard ownership is tracked by an epoch counter that increments whenever the cluster re-partitions. A write is rejected with this error when the writing node's cached epoch is stale — another node has since taken ownership of the shard. This prevents split-brain writes.\n\nRetryable. The routing layer re-routes to the current shard owner on retry. Frequent recurrence indicates cluster instability or high re-partitioning frequency."
    },
    {
      "name": "SEE ALSO",
      "body": "- errors\n- errors.CONFLICT\n- errors.TX_CONFLICT"
    }
  ],
  "see_also": [
    "errors",
    "errors.CONFLICT",
    "errors.TX_CONFLICT"
  ],
  "stability": "stable",
  "actions": []
}
