במקרה של שגיאה, פלטפורמת ה-DPA צפויה להחזיר קוד סטטוס HTTP יחד עם תגובת HTTP שחייבת לכלול אובייקט JSON עם מידע נוסף על השגיאה. התוכן של תגובת השגיאה חייב להכיל מופע של ErrorResponse.
{
"errorMessage": string,
"cause": enum(ErrorCause)
}
תגובת השגיאה של הרשות להגנה על מידע חייבת להתאים לפרטים הבאים:
- המשתמש נמצא כרגע בנדידה והשאילתה בנושא DPA מושבתת עבור המשתמש הזה. ה-DPA מחזיר שגיאה 403 עם USER_ROAMING כסיבת השגיאה.
- ה-DPA מחזיר קוד שגיאה 404 NOT_FOUND שמציין ל-GTAF שמפתח המשתמש לא תקין (כלומר, מפתח המשתמש לא קיים) עם INVALID_NUMBER.
- ה-DPA מחזיר קוד שגיאה 410 GONE עם BAD_CPID כסיבת השגיאה, שמציין ל-GTAF שהלקוח צריך לקבל מפתח משתמש חדש אם key_type= CPID ותוקף ה-CPID פג.
- ה-DPA מחזיר קוד שגיאה 501 NOT_IMPLEMENTED שמציין שהוא לא תומך בשיחה הזו עם סיבת השגיאה SERVICE_UNAVAILABLE.
- ה-DPA מחזיר 429 TOO MANY REQUESTS עם סיבת השגיאה TOO_MANY_REQUESTS עם הכותרת Retry-After שמציינת ש-GTAF שולח יותר מדי בקשות ל-DPA.
- הרשות להגנה על מידע מחזירה שגיאת 409 CONFLICT, שמעידה על כך שאי אפשר להשלים את הבקשה בגלל התנגשות עם המצב הנוכחי של הרשות להגנה על מידע.
- השירות לא זמין באופן זמני. ה-DPA מחזיר 503 SERVICE UNAVAILABLE עם הכותרת Retry-After שמציינת מתי אפשר לנסות לשלוח בקשה חדשה.
- ה-DPA מחזיר קוד שגיאה 500 INTERNAL SERVER ERROR לכל שאר השגיאות שלא צוינו ERROR_CAUSE_UNSPECIFIED כסיבת השגיאה.
במקרה של שגיאות שמתרחשות במהלך רכישה, קודי השגיאה הבאים מייצגים תוצאות של עסקאות שנכשלו:
- ה-DPA מחזיר קוד שגיאה 400 BAD REQUEST, שמציין ל-GTAF שמזהה התוכנית שנרכשה לא תקין.
- ה-DPA מחזיר קוד שגיאה 402 PAYMENT REQUIRED (נדרש תשלום), שמציין ל-GTAF שלמשתמש אין מספיק יתרה כדי להשלים את הרכישה.
- ה-DPA מחזיר קוד שגיאה 409 CONFLICT, שמציין ל-GTAF שהתוכנית שרוצים לרכוש לא תואמת לשילוב המוצרים הנוכחי של המשתמש. לדוגמה, אם מדיניות תוכנית הנתונים של הספק לא מאפשרת לשלב בין תוכניות בתשלום חודשי לבין תוכניות בתשלום מראש, ניסיון לרכוש תוכנית בתשלום מראש עבור משתמש עם תוכנית בתשלום חודשי יוביל לשגיאה 409 CONFLICT.
- ה-DPA מחזיר קוד שגיאה 403 FORBIDDEN, שמציין ל-GTAF שהעסקה הנוכחית היא כפילות של עסקה שהונפקה בעבר. ה-DPA צריך להחזיר את הסיבות הבאות לשגיאה בתגובה:
- אם העסקה הקודמת נכשלה, הסיבה לשגיאה מציינת את הסיבה לכשל.
- אם העסקה הקודמת בוצעה בהצלחה, הערך הוא DUPLICATE_TRANSACTION.
- אם העסקה הקודמת עדיין בתור, הערך הוא REQUEST_QUEUED.