dversedev

Reference

Diagnostics

43 rules the compiler enforces, so a registration that could not work fails the build instead of the deploy — or worse, production.

This table is rendered from the generator's own AnalyzerReleases files, which Roslyn refuses to let drift: adding a diagnostic without a row there fails the build. So this page lists the rules dverse actually ships, not a copy of them.

Dverse.Commands

Rule Severity Meaning
DVERSE091 Error [Command] on a method that is not a [CustomApi] handler
DVERSE092 Error Entity-scoped command location declared without an entity
DVERSE093 Error Global command location (GlobalHeader/Dashboard) declared with an entity
DVERSE094 Error Duplicate command key
DVERSE095 Error Command entity does not match the custom API's binding
DVERSE096 Error Commanded API has a request parameter that is neither Optional<T> nor nullable
DVERSE097 Error Invalid [Command] metadata (conflicting icons, Handler combined with behavior, bad key/label, unknown {response.x})
DVERSE098 Error Malformed hook/handler reference (expected 'webresource#function')

Dverse.Jobs

Rule Severity Meaning
DVERSE016 Error Invalid [Job] signature
DVERSE062 Error [Job] parameter type is not a serializable record

Dverse.Model

Rule Severity Meaning
DVERSE010 Error dataverse.snapshot.json is unparsable; re-run 'dverse model sync'

Dverse.Recipes

Rule Severity Meaning
DVERSE051 Error [Derive] dependency cycle
DVERSE052 Error [Derive] method is not pure over the row
DVERSE053 Error [Derive] calls unanalyzable code (follow same-assembly static helpers, whitelist trivially pure framework surface, error otherwise)
DVERSE071 Error [Rollup] child has multiple lookups to the parent; set Via
DVERSE072 Error [Rollup] outside the supported subset

Dverse.Registration

Rule Severity Meaning
DVERSE001 Error Invalid stage/mode combination (async outside PostOperation)
DVERSE002 Error Pre-image declared on Create
DVERSE003 Error Filtering on a message that does not support it
DVERSE004 Error Duplicate step key
DVERSE011 Error Step entity type is not a dverse model class
DVERSE012 Error Unresolvable column reference in Filtering/[Image]
DVERSE013 Error Handler must take a single IStepContext<TEntity> parameter
DVERSE014 Error Invalid custom API handler signature
DVERSE015 Error Unsupported custom API parameter type
DVERSE017 Error Empty entity logical name in the string-entity [Step] form
DVERSE018 Error Filtering on a global (entity-less) step
DVERSE019 Error Image on a global (entity-less) step
DVERSE021 Error Image escapes provable analysis; declare [Image(...)]
DVERSE022 Error Bound entity escapes provable analysis; declare [Fetch(...)]
DVERSE023 Error [Fetch] on a method without a bound entity (not a [CustomApi] handler with IApiContext<T>)
DVERSE024 Error Duplicate step name (a Name override collides with another step's name, or mimics the reserved 'dverse: {key}' template of a different key)
DVERSE025 Error Conflicting step images (more than one [Image] of a kind, or a duplicate image alias on one step)
DVERSE026 Error RunAsUser is not a GUID (expected the systemuser id to impersonate)
DVERSE027 Error Step Id pin is not a GUID
DVERSE028 Error Optional<T> on a custom API response property (only request parameters can be caller-omitted)
DVERSE032 Error Context member invalid for the step's message/stage (post-image outside PostOperation; Query outside RetrieveMultiple pre-stages)
DVERSE061 Error Step config parameter type is not a JSON-bindable record
DVERSE063 Error Invalid step config parameter shape
DVERSE081 Error [WorkflowActivity] type is not a concrete, non-generic System.Activities.CodeActivity

Dverse.Runtime

Rule Severity Meaning
DVERSE029 Error FailLocalized without an assembly-level [LocalizedStrings] base name
DVERSE042 Error Direct new HttpClient() in plugin code; use ctx.Http
DVERSE073 Warning Blanket Skip.AllCustomSync/AllCustomAsync — prefer Skip.Steps(…)