{
  "id": "elasticsearch/snapshot-repository-verification-failure",
  "signature": "RepositoryVerificationException: [my_repo] verification failed: could not write to repository at path [s3://bucket/backups/]",
  "signature_zh": "仓库验证异常：[my_repo] 验证失败：无法写入路径 [s3://bucket/backups/] 处的仓库",
  "regex": "RepositoryVerificationException: \\[([^\\]]+)\\] verification failed: could not write to repository at path \\[([^\\]]+)\\]",
  "domain": "elasticsearch",
  "category": "network_error",
  "subcategory": null,
  "root_cause": "The snapshot repository (S3, GCS, or filesystem) is unreachable due to incorrect credentials, network issues, or insufficient permissions, preventing Elasticsearch from writing verification blobs.",
  "root_cause_type": "generic",
  "root_cause_zh": "快照仓库（S3、GCS或文件系统）由于凭据错误、网络问题或权限不足而无法访问，阻止Elasticsearch写入验证blob。",
  "versions": [
    {
      "version": "7.14.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "8.8.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "8.14.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "Increasing the timeout setting (e.g., repository.s3.socket_timeout) may mask the issue but does not fix underlying credential or permission problems.",
      "fail_rate": 0.6,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Recreating the repository with the same settings will fail again because the root cause (e.g., IAM role or bucket policy) is unchanged.",
      "fail_rate": 0.9,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Verify S3 credentials by running: aws s3 ls s3://bucket/backups/ --profile elasticsearch-snapshot from the Elasticsearch node. If it fails, update the repository with correct credentials: PUT /_snapshot/my_repo { 'type': 's3', 'settings': { 'bucket': 'bucket', 'region': 'us-east-1', 'access_key': 'CORRECT_KEY', 'secret_key': 'CORRECT_SECRET' } }",
      "success_rate": 0.85,
      "how": "Verify S3 credentials by running: aws s3 ls s3://bucket/backups/ --profile elasticsearch-snapshot from the Elasticsearch node. If it fails, update the repository with correct credentials: PUT /_snapshot/my_repo { 'type': 's3', 'settings': { 'bucket': 'bucket', 'region': 'us-east-1', 'access_key': 'CORRECT_KEY', 'secret_key': 'CORRECT_SECRET' } }",
      "condition": "",
      "sources": []
    },
    {
      "action": "Check the Elasticsearch logs for detailed error messages (e.g., AccessDenied, 403) and fix the bucket policy to allow s3:PutObject for the Elasticsearch role. Example policy: { 'Effect': 'Allow', 'Action': 's3:PutObject', 'Resource': 'arn:aws:s3:::bucket/backups/*' }",
      "success_rate": 0.8,
      "how": "Check the Elasticsearch logs for detailed error messages (e.g., AccessDenied, 403) and fix the bucket policy to allow s3:PutObject for the Elasticsearch role. Example policy: { 'Effect': 'Allow', 'Action': 's3:PutObject', 'Resource': 'arn:aws:s3:::bucket/backups/*' }",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Verify S3 credentials by running: aws s3 ls s3://bucket/backups/ --profile elasticsearch-snapshot from the Elasticsearch node. If it fails, update the repository with correct credentials: PUT /_snapshot/my_repo { 'type': 's3', 'settings': { 'bucket': 'bucket', 'region': 'us-east-1', 'access_key': 'CORRECT_KEY', 'secret_key': 'CORRECT_SECRET' } }",
    "Check the Elasticsearch logs for detailed error messages (e.g., AccessDenied, 403) and fix the bucket policy to allow s3:PutObject for the Elasticsearch role. Example policy: { 'Effect': 'Allow', 'Action': 's3:PutObject', 'Resource': 'arn:aws:s3:::bucket/backups/*' }"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore.html",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.84,
  "fix_success_rate": 0.82,
  "resolvable": "partial",
  "first_seen": "2024-05-22",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}