Donutgramплагины
На этой страницеОшибка содержит code

Ошибки и диагностика

Различайте ошибку кода, отсутствие контекста и отказ нативной операции.

Ошибка содержит code

Нативная операция отклоняет Promise с кодом ошибки. Сначала обработайте ожидаемую отмену или отсутствие функции, затем решайте, нужен ли текст пользователю.

try {
  const draft = await api.composer.getActiveDraft();
  if (!draft) return;
} catch (error) {
  if (error.code === "cancelled") return;
  if (error.code === "feature_unavailable") {
    await api.ui.toast("Откройте чат и повторите действие");
    return;
  }
  throw error;
}

Основные коды

Код Значение
permission_denied Нужная возможность не предоставлена
scope_denied Действие выходит за разрешённый контекст
gesture_required Нужно явное нативное действие пользователя
feature_unavailable Адаптер не доступен в текущем клиенте или контексте
revision_conflict Черновик или просмотренный пакет изменился
stale_handle Объект больше не существует или handle устарел
quota_exceeded Превышен лимит
rate_limited Слишком много действий за короткое время
cancelled Действие отменено
storage_error Не удалось сохранить данные
runtime_error Runtime остановлен или превысил ограничения

Не скрывайте отказ

Не сообщайте об успешной отправке, если операция отклонилась. queued означает постановку в очередь, а не подтверждённую доставку сервером.

Журнал

История ошибок доступна в дополнительных параметрах установленного плагина. В пользовательском интерфейсе известные ошибки объясняются на языке приложения.

Для короткого осмысленного сообщения используйте api.ui.toast, но не превращайте его в постоянный лог каждого события. Уведомления ограничены по частоте.

Границы проверки

Статический validate проверяет пакет, mock-тест проверяет выбранную логику, а реальное нативное действие проверяется на устройстве. Успех одного уровня не означает успех другого.