> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# idempotency_key_reuse

> פתרון קונפליקטים מסוג HTTP 409: הבחנה בין בקשה שעדיין מתבצעת לבין שימוש חוזר ב-Idempotency-Key עם קלט שונה.

| | |
| - | - |
| **קוד** | `idempotency_key_reuse` |
| **סטטוס HTTP** | `409 Conflict` |
| **ניתן לניסיון חוזר** | יש לקרוא את `retryable` בתגובה |

## בחירת דרך ההתאוששות המתאימה

אותו קוד שגיאה מתאר שני מצבים שונים. יש לבדוק את `retryable` לפני
שנוקטים פעולה; סטטוס HTTP בלבד אינו מורה אם יש לנסות שוב.

| תגובה | משמעות | הצעד הבא |
| - | - | - |
| `retryable: false` | המפתח כבר מזהה בקשה עם קלט שונה. | יש להשוות את גוף הבקשה לבקשה המקורית. יש להשתמש במפתח חדש רק עבור פעולה שונה במכוון. |
| `retryable: true` | בקשה אחרת המשתמשת באותו מפתח עדיין בעיבוד. | יש לשמור על אותו מפתח ואותה בקשה. יש להמתין לפחות `Retry-After` שניות ולאחר מכן לנסות שוב במסגרת תקציב זמן מוגבל. |

### קלט שונה

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "title": "Conflict",
  "status": 409,
  "detail": "Idempotency-Key was already used with a different request.",
  "code": "idempotency_key_reuse",
  "request_id": "req_0199a1e0-7c00-7000-8000-000000000001",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "retryable": false,
  "param": "Idempotency-Key"
}
```

### הבקשה עדיין בעיבוד

בדוגמה זו קיימת גם כותרת התגובה של HTTP‏ `Retry-After: 1`.

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "title": "Conflict",
  "status": 409,
  "detail": "A concurrent request is still processing this Idempotency-Key. Retry shortly.",
  "code": "idempotency_key_reuse",
  "request_id": "req_0199a1e0-7c00-7000-8000-000000000001",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "retryable": true,
  "param": "Idempotency-Key"
}
```

## שמירה על זהות ניסיון חוזר יציבה

עבור פעולות שבהן מתועדת תמיכה באידמפוטנטיות, המפתח מוגבל להיקף של הארגון,
חשבון השירות, שיטת ה-HTTP, נתיב המשאב וגרסת ה-API שנקבעה. שינוי של
כל אחד מהם יוצר זהות ניסיון חוזר שונה; הוא אינו משחזר את הפעולה
המקורית. החלפת אישור גישה (credential) תחת אותו חשבון שירות אינה משנה
את הזהות הזו, אף שלאישור הגישה החלופי עדיין נדרשת הרשאה.

יש לשמור על המפתח, גוף הבקשה, הנתיב והגרסה המקוריים בעת התאוששות מפקיעת זמן (timeout).
אין ליצור מפתח חדש רק כדי לעקוף קונפליקט: ייתכן שפעולת הכתיבה
המקורית כבר הצליחה. יש לאחזר את המשאב כאשר המזהה שלו ידוע, ולהשתמש
בהליך ההתאוששות המתועד של הפעולה. תגובה חוזרת שהושלמה כוללת
`Idempotent-Replayed: true` במקום שבו הפעולה מתעדת שחזור תגובה.

שליחת `Idempotency-Key` אינה הופכת פעולה לאידמפוטנטית, אלא אם
התיעוד שלה תומך בכותרת זו במפורש. ההגנה מפני ניסיונות חוזרים מוגבלת
על ידי מדיניות השמירה של הפעולה; היא אינה מהווה ערובה קבועה מפני כפילויות.

אם העיבוד נותר ללא פתרון, יש לפנות אל [Living Security Support](mailto:support@livingsecurity.com)
ולציין את `request_id`, חותמת זמן ב-UTC, שיטה, נתיב וגרסת API. אין לכלול לעולם
מפתח API, סוד לקוח (client secret) או אסימון גישה (access token).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.