Помилки

Сторінка технічної документації є баченням майбутньої реалізації, актуальність якого може бути застарілою.

400 - Помилки клієнта

Diagram

Помилка з ControllerAdvice

Внутрішній код:

  • CLIENT_ERROR - загальний випадок

  • HEADERS_ARE_MISSING - відсутній обов’язковий заголовок

  • INVALID_HEADER_VALUE - значення заголовка недопустиме (в Cehp відсутнє значення для такого ключа)

401 - Аутентифікації

Diagram

Відсутній токен

Внутрішній код:

  • AUTHENTICATION_FAILED - загальний випадок

403 - Вийшов термін дії JWT

Diagram

В REST API це перевіряє Istio, а в Kafka API це відбувається в сервісі.

Внутрішній код:

  • JWT_EXPIRED - загальний випадок

409 - Порушення одного з обмежень на рівні БД

Diagram

Процедура повертає поле яке порушено

Внутрішній код:

  • CONSTRAINT_ERROR - загальна помилка

Можливі кроки для усунення: Перенесення перевірки на рівень бізнес процесів\клієнта

Приклад відповіді

{
    "traceId": "traceId from MDC",
    "code": "CONSTRAINT_ERROR",
    "details": {
        "constraint": "unique/fk"
    }
}

412 - Данні не відповідають підпису

Diagram

Данні в тілі не відповідають підпису

Внутрішній код:

  • SIGNATURE_VIOLATION - загальна помилка

422 - Помилка валідації доменів

Diagram

Значення змінної не відповідає правилам вказаним в домені. Внутрішній код:

  • VALIDATION_ERROR - загальна помилка

Можливі кроки для усунення: Додати перевірки на рівні клієнта

Приклад відповіді

{
    "traceId": "traceId from MDC",
    "code": "VALIDATION_ERROR",
    "details": {
        "errors": [
            {
                "value": "-42",
                "field": "age",
                "message": "doesn't match pattern"
            },
            {
                "value": "",
                "field": "name",
                "message": "shouldn't be blank"
            }
        ]
    }
}

500 - Загальні помилки

Diagram

Щось пішло не так

Внутрішній код:

  • RUNTIME_ERROR - загальна помилка

Diagram

Помилка в контракті між Rest API та Kafka API відправляються клієнту як внутрішні помилки системи

Внутрішній код:

  • INTERNAL_CONTRACT_VIOLATION - Порушення внутрішнього контракту

Можливі причини виникнення: Скоріше за все "баг" дата фабрики або атака через Kafka

Diagram

Помилка виклику процедуру або обробки її відповіді Внутрішній код:

  • PROCEDURE_ERROR - Помилки пов’язані з БД

Можливі причини виникнення: Не узгодженість версій процедури і коду або баг" дата фабрики

Diagram

Відсутня відповідь від Kafka API. Неправильна конфігурація, Kafka API сервіс недоступний, або виконання зайняло занадто багато часу.

Внутрішній код:

  • TIMEOUT_ERROR - Таймаут відповіді

Можливі причини виникнення: Помилка конфігурації в даба фабриці, "бага" дата фабрики, запит оброблявся занадто довго

Diagram
Diagram

Одна з сторонніх систем не доступна.

Внутрішній код:

  • THIRD_PARTY_SERVICE_UNAVAILABLE - зовнішня система не доступна

Diagram

Внутрішній підпис не відповідає даним що були підписані

Внутрішній код:

  • RUNTIME_ERROR - загальна помилка

Можливі причини виникнення: "бага" дата фабрики, атака через Kafka