Бета · редакция 2026.10-beta1 · MCP 2026-07-28

Ошибки обрывы и повтор

L18 · MCP 2026-07-28 · открытая бета · редакция 2026.10-beta1

Самые неприятные ошибки начинаются после успешной записи, когда ответ потерялся в сети. Пользователь нажимает «повторить», и задача создаётся второй раз. Я проектирую этот случай раньше, чем счастливый путь.

Предварительно: L14 · L15

Как я это использую

Разделяйте JSON-RPC error, прикладной isError и транспортный обрыв. Для чтения допустим ограниченный retry с backoff. Для записи сначала установите, известен ли исход операции, и используйте ключ идемпотентности на уровне приложения. Новое id JSON-RPC не является таким ключом. Не повторяйте бесконечно 401 или 403: исправьте аутентификацию и разрешения.

Самодостаточный HTTP запрос

Разбираем конкретный контракт

Это учебный fixture: поля с доменом .example и идентификаторы вымышлены. Если показан фрагмент, его нужно поместить в соответствующий envelope выбранного профиля.

{
  "operation": "create_task",
  "idempotencyKey": "operation-101",
  "failure": "write committed; response lost",
  "retry": "reuse application idempotency key; new JSON-RPC id"
}

Лаборатория · L18

Измените условия, проверьте результат и разберите ошибку. Все адреса и данные учебные.

Что легко сломать

В инжекторе ошибок выбирайте момент разрыва: до выполнения, после записи или после ответа. Сравните состояние хранилища и состояние UI. Неподтверждённый результат лучше обозначить явно, чем показать ложный успех или автоматически повторить побочный эффект.

Практика и самопроверка

Исправить обработчик ошибок; решить, когда новый запрос безопасен. Проверить прикладную идемпотентность при потере ответа.

Я советую сначала предсказать результат, затем изменить один параметр в лаборатории и объяснить разницу. Сохраните небольшой fixture с нормальным и ошибочным случаем для своего проекта. Тренажёр открыт без регистрации; для сохранения ответов на тесты и завершения урока войдите в аккаунт.

В конце страницы — три вопроса. После правильных ответов можно завершить урок; ошибка в следующей тренировке не стирает уже полученное подтверждение этой редакции теста.

На что я опирался

Профиль и ссылки проверены 15 октября 2026. Core, deprecated compatibility и extensions в этом курсе помечены отдельно. Примеры объясняют выбранные сценарии; для реализации сверяйте нормативные MUST/SHOULD и schema соответствующей версии.

Проверка знаний

Читайте свободно. Войдите, чтобы отвечать и сохранять прогресс.

Является ли JSON-RPC id ключом идемпотентности записи?

Что означает обрыв после записи?

Как повторять чтение?