На этой страницеОшибка содержит 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-тест проверяет выбранную логику, а реальное нативное действие проверяется на устройстве. Успех одного уровня не означает успех другого.