Stable Diagnostics
开发者可依赖的公开错误 code、含义与修复方向。
# 使用规则
捕获 KernelException 后保留 stableCode,界面文案可本地化。不要依赖英文 message,不要解析内部调用栈,也不要把未知错误自动降级为成功。
# Manifest
| Code | 含义 / 修复 |
|---|---|
manifest.invalid_json | JSON 无法解析;修复语法。 |
manifest.object_required | 顶层必须是对象。 |
manifest.unknown_field | 删除未定义字段。 |
manifest.required_field_missing | 补齐必需字段。 |
manifest.version_unsupported | 使用 manifest_version 1.0。 |
manifest.id_invalid | 修正小写分段 package id。 |
manifest.package_version_invalid | 修正 SemVer。 |
manifest.package_type_unsupported | 使用公开包类型。 |
manifest.capability_duplicate | capabilities 去重。 |
manifest.dependency_range_invalid | 使用支持的比较范围。 |
manifest.optional_fallback_required | 为可选依赖给出非空 fallback。 |
# Capability
capability.unknown:能力未登记;capability.package_type_denied:包类型禁止该能力;capability.approval_required:缺少条件审批;capability.undeclared:运行时使用了 manifest 未声明能力;capability.not_granted:声明了但未授予;capability.grant_identity_mismatch:grant 不属于当前 package identity。
# Data / Migration
data.namespace_not_owned:namespace 未在 data_ownership 中;migration.id_invalid:迁移 id 为空;migration.checksum_invalid:checksum 不是小写 SHA-256;migration.duplicate_id:同一计划 id 重复;migration.immutable_history_mismatch:已记账迁移被修改;migration.failed_retry_not_allowed:FAILED 迁移未声明幂等重试;migration.execution_failed:apply 失败,生命周期不会推进。
# Dependency / Event
dependency.required_missing、dependency.version_unsatisfied、dependency.multiple_active_versions、dependency.cycle 分别表示必需依赖缺失、版本不满足、同 id 多版本和依赖环。事件常见 code:event.not_declared、event.unknown_registration、event.payload_invalid、event.notify_return_invalid、event.contribution_invalid。
# Resources / Presentation
资源常见 code:template.not_declared、template.path_invalid、asset.not_declared、asset.path_invalid。Presentation 常见 code:presentation.target_unknown、presentation.template_not_registered、presentation.override_type_invalid、presentation.theme_data_provider_forbidden、presentation.provider_declaration_mismatch、presentation.model_type_invalid、presentation.model_version_invalid。