Диагностика
Каждая ошибка содержит код, путь к проблемному значению и понятное сообщение; ошибки сборки Recipe добавляют цепочку ссылок на шаблоны.
{
"code": "reference_cycle",
"sourcePath": "/root/source/body",
"referenceChain": ["[\"example-site-17\",\"template\",\"example/library\",\"article\",\"r1\"]"],
"message": "Reference cycle"
}
Ошибка проверки Document имеет форму {code, path, message}; путь записан
от корня документа:
{
"code": "type_unknown",
"path": "$.root.type",
"message": "Unknown type layout.page"
}
Код устойчив для автоматической обработки, путь позволяет редактору подсветить поле.
Правила работы с диагностикой:
- показывайте диагностику рядом с исходным JSON;
- блокируйте публикацию при любой ошибке;
- не заменяйте подробности одним «документ неверен»: разработчику и ИИ нужен точный путь исправления.
Группы ошибок:
- сборка Recipe: неверный JSON, неизвестное поле или параметр, нет входа или источника, цикл ссылок, несовпадение ревизии, происхождения или отпечатка, отказ доступа, ошибка источника, превышение лимита;
- проверка Document: неизвестный тип, слот или вариант, повтор идентификатора, опасная ссылка, запрещённое поле, превышение лимита;
- отрисовка: нет рендерера для типа (
renderer_unavailable).
Ни одна из этих ошибок не создаёт частично готовый Document: если шаблон
статьи ссылается сам на себя, сборка возвращает reference_cycle с путём к
ссылке и всей цепочкой вызовов, а если продукт отказал в доступе к тексту —
access_denied.
Полный перечень кодов — в нормативном комплекте (Где взять спецификацию).