DBXK010 | The manifest plugin ID is empty. | PluginId = "" → choose a stable non-empty ID. | Reject the upload and ask the author to regenerate it. | Never. |
DBXK011 | Manifest and module IDs differ. | Manifest weather, module chat → make both weather. | Regenerate the package from one identity source. | Never. |
DBXK012 | Module metadata is missing or has a different plugin ID. | Omit plugin-id metadata → emit metadata matching the manifest. | Rebuild through the supported package generator. | Never. |
DBXK013 | Kernel metadata is missing or a subscription targets another kernel. | Module guard, subscription chat → bind both to guard. | Split unrelated kernels into separate packages. | Never. |
DBXK014 | The contract is not IEventKernel<TEvent> or its event differs from the subscription. | Contract IEventKernel<A>, subscription B → use the same event type. | Author a separate package per event contract. | Never. |
DBXK021 | A live-setting name is duplicated. | Declare Threshold twice → give every setting a unique name. | Combine the values into one supported setting. | Never. |
DBXK022 | A non-numeric setting declares a numeric range. | string Mode with min/max → remove the range or use a numeric type. | Validate string choices in host configuration. | Never for the invalid manifest. |
DBXK023 | A supplied setting value is outside its range. | Set Percent = 150 for range 0–100 → provide an in-range value. | Keep the previous accepted value and report the rejection. | Never; operator input is invalid. |
DBXK024 | A setting’s minimum exceeds its maximum. | Range 10–1 → change it to 1–10. | Remove the range if it is not meaningful. | Never. |
DBXK030 | A hook plugin has no subscriptions. | Ship an event kernel with Subscriptions = [] → declare at least one event. | Use a server-extension package for request/response behavior. | Never. |
DBXK031 | A subscription omits event/kernel or runtime wiring uses an unsubscribed event. | Wire DamageEvent to a chat-only kernel → wire only declared events. | Register a separate correctly declared kernel. | Never. |
DBXK032 | A required entrypoint is missing or non-public. | Point Handle at a private/missing function → expose the named public entrypoint. | Regenerate standard entrypoint aliases. | Never. |
DBXK033 | Entrypoint parameters or return type do not match the event/settings contract. | ShouldHandle returns Int32 → return Bool with exact parameters. | Rebuild from the typed kernel abstraction. | Never. |
DBXK034 | Entrypoints disagree on parameters or adapters conflict. | Give Handle an extra parameter → make both signatures identical. | Use one adapter registration per event type. | Never. |
DBXK035 | Live settings are not exact trailing entrypoint parameters. | Put a renamed setting before event fields → append exact name/type settings in manifest order. | Regenerate the entrypoint signature. | Never. |
DBXK036 | An adapter writes a different count/type than it declares. | Declare one Int32, write two strings → make declaration and writer exactly agree. | Replace the host adapter before running the plugin. | Never; this is a host contract error. |
DBXK040 | Effects are empty or contain an unknown value. | Declare "filesystem" → use defined SandboxEffect values derived from verification. | Regenerate effects from the module analysis. | Never. |
DBXK041 | Declared effects differ from verified entrypoint effects. | Declare no file effect while reading a file → declare the verified exact set. | Remove the effectful operation and re-verify. | Never; policy decisions depend on it. |
DBXK042 | The execution-mode value is undefined. | Cast 99 to the enum → choose a supported mode. | Use Auto when no specific backend is required. | Never. |
DBXK043 | Verified async behavior lacks the runtime async grant. | Install async binding under a sync-only policy → call AllowRuntimeAsync(). | Remove the async binding or run in a suitable containment profile. | Never. |
DBXK044 | Required capabilities differ from verified capabilities. | Hand-add or strip a capability → regenerate from verified source. | Remove the capability-touching operation and rebuild. | Never; capability claims are not self-asserted. |
DBXK045 | A required package collection or entry is null. | Set Functions = null → provide non-null collections without null entries. | Recreate the package with its public builder/generator. | Never. |
DBXK046 | An indexed predicate uses an undefined operator. | Cast 99 to IndexPredicateOperator → use a defined comparison. | Omit the index hint and evaluate verified IR. | Never for a claimed index. |
DBXK047 | An indexed predicate declares an unsupported value type. | Set value type to decimal → use bool/int/long/double/string. | Omit the index hint and evaluate verified IR. | Never for a claimed index. |
DBXK048 | Full index coverage is claimed without any predicates. | IndexCoversPredicate = true with an empty list → provide predicates or set false. | Evaluate the verified predicate normally. | Never; the claim could skip authorization logic. |
DBXK049 | An indexed value’s runtime type differs from its declared type. | Declare int while boxing a long → make type and value agree. | Omit the invalid index hint. | Never for a claimed index. |
DBXK050 | Manifest text is blank, controlled, or resembles a forbidden CLR/IL descriptor. | Use an identifier containing a newline/type descriptor → use stable plain text. | Regenerate identifiers from trusted source names. | Never; this is an input-hardening boundary. |
DBXK051 | A required capability is a wildcard. | Require event.read.* → list concrete capability IDs. | Split broad behavior into explicit least-privilege grants. | Never. |
DBXK052 | A required capability identifier has an empty dotted segment. | Require event.read.bad..id → use a valid concrete capability ID. | Regenerate required capabilities from validated package metadata. | Never; malformed IDs cannot express a safe grant. |
DBXK060 | Another session owns the plugin ID. | Session B replaces session A’s ID → choose another ID or let A uninstall. | Disconnect the owning session through host policy. | Never; this is an ownership boundary. |
DBXK061 | A session updates settings for another owner’s plugin. | Session B updates A’s kernel → update only kernels installed by B. | Route the request through the owning session. | Never; this is an ownership boundary. |
DBXK062 | A Run terminal reached runtime without generated verified IR. | Omit/fail analyzer lowering then call Run → fix DBXK114 and regenerate. | Bind a kernel class with Use/Register. | Never. |
DBXK063 | A generated hook chain uses a pipeline without an installer. | Construct a standalone pipeline then call UseGeneratedChain → use server.Hooks. | Install the package explicitly through PluginServer. | Never. |
DBXK064 | One subscription pipeline receives conflicting adapters. | Register two adapter shapes for the same event → retain one stable adapter. | Use a distinct event type/pipeline. | Never. |
DBXK065 | A generated subscription chain uses a pipeline without an installer. | Call UseGeneratedChain outside server.Subscriptions → use the server pipeline. | Install the package explicitly. | Never. |
DBXK066 | A result hook is fired with the wrong result type. | Fire OtherResult for a context declaring Decision → use Decision. | Create a distinct context for the other result contract. | Never. |
DBXK067 | Registrations provide different context factories for one event/context pair. | Register two factory delegates → reuse one stable factory. | Choose a distinct context type. | Never. |
DBXK070 | A server-extension manifest has no RPC entrypoint. | Install an extension with RpcEntrypoint = null → generate/set the batch entrypoint. | Package it as a hook kernel if it is event-driven. | Never. |
DBXK071 | The RPC entrypoint is missing or non-public. | Name a private/missing function → expose the exact public function. | Regenerate with [ServerExtension]. | Never. |
DBXK072 | A server extension returns an unsupported sandbox type. | Return an arbitrary CLR object → return a supported scalar/list/record DTO. | Marshal through a public supported DTO shape. | Never. |
DBXK073 | One manifest mixes hook subscriptions and RPC extension shape. | Set both subscriptions and RpcEntrypoint → split the packages. | Compose the separate packages at the host. | Never. |
DBXK074 | Entrypoint aliases differ from the RPC entrypoint. | Alias Handle to a hook function → alias both to the extension entrypoint. | Regenerate the extension package. | Never. |
DBXK075 | A manifest collection contains a null entry. | Include null in settings/subscriptions/predicates → remove it. | Recreate the manifest through typed builders. | Never. |