ASP0016: Do not return a value from RequestDelegate

Value
Rule ID ASP0016
Category Usage
Fix is breaking or non-breaking Non-breaking

Cause

A method used to create a RequestDelegate returns Task<T>. RequestDelegate discards this value.

Rule description

Do not return a value Delegates provided to APIs that expect RequestDelegate. For example, the following sample returns a Task<string> where the string value of the Task will be discarded.

var app = WebApplication.Create();
app.Use(next =>
{
    return new RequestDelegate((HttpContext context) =>
    {
        return Task.FromResult(""hello world"");
    });
});

How to fix violations

To fix a violation of this rule, change the return type to non-generic Task or, if the delegate is a route handler, cast it to Delegate so the return value is written to the response.

When to suppress warnings

Do not suppress a warning from this rule.