Skip to content

ARC0026 - Invalid explicit query declaration

[Query] expresses endpoint intent on a [ReadModel]. It does not make an invalid method eligible. A marked method must be ordinary, public or internal, static, and nongeneric, with value parameters and a supported read-model return shape. Plain Task, unsupported return types, by-reference arguments or results, and a missing read-model owner are errors. Correct the declaration or remove the marker.

A parameter of the exact declaring read-model type (T or nullable T?) makes a method ineligible, regardless of its name or parameter position. [Query] cannot override that exclusion. Remove [Query] from a self-reduction/helper method; leave its current-state parameter intact.

Validation applies even when RequireQueryAttribute is false. That default retains conventional discovery: marking one method does not hide siblings or widen return eligibility.

In RequireQueryAttribute = true mode, two selected overloads with the same name cannot have distinct query identities. Rename one endpoint or remove its marker. An unmarked overload can remain as a helper.

See explicit endpoint selection and migration preview.