Ошибка клиента — одна форма для всех транспортов: {:error, %LogDB.Error{}}.
code — что случилось, атомом:
- отказ шины (как в её API 1,
{code, message, details})::unauthorized,:forbidden,:not_found,:invalid,:conflict,:too_large,:unavailable,:timeout,:internal; - на стороне клиента:
:disconnected(нет соединения с шиной),:timeout(шина не ответила вовремя),:not_supported(транспорт этого не умеет); :unknown— шина ответила отказом прежней формы, которую не разобрать; он сам — вdetails.reason.
details — подробности: status и body HTTP-ответа, reason —
исходная причина, index — номер события в батче.
Это исключение: raise error даёт осмысленное сообщение.
Summary
Functions
Любая причина отказа — транспорта, шины любой версии — в %LogDB.Error{}.
Ошибка с кодом и текстом.