Skip to content

Diagnostics reference

This page is the stable help target for every Services (DBXS) and Kernels/plugins (DBXK) diagnostic. Analyzer help links point directly to the anchors below. Runtime hosts can obtain the same DBXK meaning, audience, cause, and remediation from PluginDiagnosticCodes.

“Never” in the suppression column means suppressing the diagnostic can leave generated code absent, accept an invalid package, or weaken a security boundary. Where suppression is allowed, verify the remaining generated/public-primitive path in a test.

CodeCauseBad example → correctionAlternative or fallbackSuppression policy
DBXS001An unexpected Services generator stage failed.A service triggers an unhandled generator case → fix earlier compiler errors and reduce/report the reproducer.Hand-write IServiceDispatcher and IRpcInvoker using public primitives.Never for a service that must be callable.
DBXS002An RPC method uses an unsupported parameter, return, or DTO shape.void Update(ref int value)UpdateResult Update(UpdateRequest request).Exclude the method from the RPC contract and implement it outside RPC.Only when the method is intentionally not part of the contract.
DBXS003The service is nested, open generic, or otherwise unsupported.[RpcService] interface IStore<T> → a top-level, closed IStringStore.Hand-write a dispatcher/proxy for the specialized public contract.Never when the service is registered.
DBXS004A projected Async convenience name collides with another member.Get() plus GetAsync() with conflicting generated shape → rename one wire method or author the async member explicitly.Call the non-colliding generated member or a hand-written invoker.Only when the omitted convenience member is unused and tested.
DBXK001Plugin code calls a forbidden host/runtime API.File.ReadAllText(path) in lowered code → use a declared, policy-granted file capability binding.Move native work outside the plugin or expose a narrow public host binding.Never; this is a sandbox boundary.
DBXK020A [LiveSetting] member has an unsupported type.[LiveSetting] DateTime Start → use string, bool, int, long, or double and convert outside IR.Declare the equivalent live-setting primitive in a hand-written manifest.Never for generated plugin settings.
DBXK100A kernel expression cannot be represented by the supported IR subset.Interpolate an arbitrary object → interpolate supported scalar values or build the value outside the kernel.Delete the sugar and construct a PluginPackage with public primitives.Never; generation did not preserve the requested semantics.
DBXK111A recognized remote RunLocal chain could not be lowered.Use an unsupported predicate/projection → use supported scalar/DTO stages.Execute locally without the remote chain, or install a hand-written package.Never; the native terminal otherwise throws.
DBXK112A hook-result type lacks the required control contract.A mutable class without Success/Reason → a top-level readonly record struct with bool Success and string? Reason.Return a supported result contract through public hook primitives.Never; result builders cannot be emitted safely.
DBXK113A result hook has the wrong context/result or an unsupported stage.Register a handler returning a different result type → use the context’s [Hook] result and supported stages.Register a hand-written public hook pipeline.Never; the native terminal otherwise throws.
DBXK114A recognized Run chain could not be lowered.Put unsupported code in Where, Select, or the terminal → use supported IR expressions.Bind a kernel class with Use/Register or install public primitives.Never; the runtime terminal otherwise reports DBXK062.
DBXK115Two generated server-extension grafts have the same lookup signature.Generate duplicate receiver/name/parameters in one namespace → rename or move one graft.Call a non-grafted public client explicitly.Never; extension lookup would be ambiguous.
DBXK116A [NativeOnly] member reached server-side IR.Call a native context helper in a lowered predicate → move it outside the chain.Expose an explicit capability-gated host binding.Never; server semantics cannot reproduce the call.
DBXK117An unexpected plugin-generator stage failed.A syntax item crashes a generation stage → fix earlier errors, minimize, and report it.Construct the equivalent package using public primitives.Never for the affected generated item.

Runtime package, policy, and lifecycle diagnostics

Section titled “Runtime package, policy, and lifecycle diagnostics”
CodeCauseBad example → correctionAlternative or fallbackSuppression policy
DBXK010The manifest plugin ID is empty.PluginId = "" → choose a stable non-empty ID.Reject the upload and ask the author to regenerate it.Never.
DBXK011Manifest and module IDs differ.Manifest weather, module chat → make both weather.Regenerate the package from one identity source.Never.
DBXK012Module 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.
DBXK013Kernel metadata is missing or a subscription targets another kernel.Module guard, subscription chat → bind both to guard.Split unrelated kernels into separate packages.Never.
DBXK014The 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.
DBXK021A live-setting name is duplicated.Declare Threshold twice → give every setting a unique name.Combine the values into one supported setting.Never.
DBXK022A 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.
DBXK023A 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.
DBXK024A setting’s minimum exceeds its maximum.Range 10–1 → change it to 1–10.Remove the range if it is not meaningful.Never.
DBXK030A 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.
DBXK031A 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.
DBXK032A required entrypoint is missing or non-public.Point Handle at a private/missing function → expose the named public entrypoint.Regenerate standard entrypoint aliases.Never.
DBXK033Entrypoint 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.
DBXK034Entrypoints disagree on parameters or adapters conflict.Give Handle an extra parameter → make both signatures identical.Use one adapter registration per event type.Never.
DBXK035Live 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.
DBXK036An 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.
DBXK040Effects are empty or contain an unknown value.Declare "filesystem" → use defined SandboxEffect values derived from verification.Regenerate effects from the module analysis.Never.
DBXK041Declared 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.
DBXK042The execution-mode value is undefined.Cast 99 to the enum → choose a supported mode.Use Auto when no specific backend is required.Never.
DBXK043Verified 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.
DBXK044Required 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.
DBXK045A 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.
DBXK046An 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.
DBXK047An 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.
DBXK048Full 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.
DBXK049An 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.
DBXK050Manifest 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.
DBXK051A required capability is a wildcard.Require event.read.* → list concrete capability IDs.Split broad behavior into explicit least-privilege grants.Never.
DBXK052A 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.
DBXK060Another 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.
DBXK061A 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.
DBXK062A 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.
DBXK063A 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.
DBXK064One subscription pipeline receives conflicting adapters.Register two adapter shapes for the same event → retain one stable adapter.Use a distinct event type/pipeline.Never.
DBXK065A generated subscription chain uses a pipeline without an installer.Call UseGeneratedChain outside server.Subscriptions → use the server pipeline.Install the package explicitly.Never.
DBXK066A 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.
DBXK067Registrations provide different context factories for one event/context pair.Register two factory delegates → reuse one stable factory.Choose a distinct context type.Never.
DBXK070A 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.
DBXK071The RPC entrypoint is missing or non-public.Name a private/missing function → expose the exact public function.Regenerate with [ServerExtension].Never.
DBXK072A 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.
DBXK073One manifest mixes hook subscriptions and RPC extension shape.Set both subscriptions and RpcEntrypoint → split the packages.Compose the separate packages at the host.Never.
DBXK074Entrypoint aliases differ from the RPC entrypoint.Alias Handle to a hook function → alias both to the extension entrypoint.Regenerate the extension package.Never.
DBXK075A manifest collection contains a null entry.Include null in settings/subscriptions/predicates → remove it.Recreate the manifest through typed builders.Never.

The analyzer release tables remain the machine-readable severity inventory, while this page is the stable actionable help surface. Runtime DBXK entries are also maintained in PluginDiagnosticCodes; CI compares the production descriptors/catalog with the anchors above.

Legacy ShaRPC SHARPC### codes map to DBXS###; legacy Safe-IR SGP### codes map to DBXK###. Update old .editorconfig and <NoWarn> entries. See Migration from standalone repositories.