ARC0029 - Non-public static method is not exposed as a query
Why the warning appears
Section titled “Why the warning appears”Arc exposes only public static query methods on [ReadModel] types. Internal, private, protected, protected internal, and private protected methods are not endpoints and have no generated query proxy, even with [Query]. A public static method on an internal read-model type can still be a query.
ARC0029 is a warning on non-public static methods that return the declaring read model or a supported query wrapper, or carry [Query]. It also applies in RequireQueryAttribute = true mode. Ordinary helpers returning unrelated values, such as string or plain Task, do not trigger it unless marked [Query].
Earlier versions allowed internal query methods. Removing that exposure prevents a non-public helper from becoming callable over HTTP because of its return shape. Direct C# calls are unchanged.
Decide whether the method is an endpoint
Section titled “Decide whether the method is an endpoint”If this method is an intended query, make it public and review its authorization and request parameters before exposing it. Keep its [Query] marker when the read model requires explicit query selection.
If it is a helper, keep it non-public. Remove any [Query] marker; a non-public marked method also causes ARC0026. You may suppress ARC0029 locally for an intentional query-shaped helper after confirming it should not be exposed. Suppressing the warning never exposes the method.