Skip to main content
All docs
V22.2
  • CRR0053 - Missing 'await'

    • 2 minutes to read

    This analyzer identifies places where an async method should be awaited to avoid issues with exception handling and premature object disposal:

    public Task<T> Handle(T request, CancellationToken cancellationToken) {
        using var handler = HandlerFactory.CreateRequestHandler(request);
        return ExecuteHandlerAsync<T>(handler, cancellationToken);  // <-- CRR0053 reported for the ExecuteHandlerAsync(...) call
    }
    
    public Task<T> ExecuteHandlerAsync<T>(Handler<T> handler, CancellationToken cancellationToken) {
        // A long running operation that utilizes handler object
    }
    

    To fix this warning, add the await operator to the method call:

    public async Task<T> Handle(T request, CancellationToken cancellationToken) {
        using var handler = HandlerFactory.CreateRequestHandler(request);
        return await ExecuteHandlerAsync<T>(handler, cancellationToken).ConfigureAwait(false);  // <-- CRR0053 no longer reported for the ExecuteHandlerAsync(...) call
    }
    
    public Task<T> ExecuteHandlerAsync<T>(Handler<T> handler, CancellationToken cancellationToken) {
        // A long running operation that utilizes handler object
    }
    
    See Also