private async Task Handle<TMessage>(TMessage message, CancellationToken token)
{
        try
        {
            await ProcessMessage(message, token);
        }
        catch (Exception e) when (e is not OperationCanceledException)
        {
            Logger.LogError(e, "There was an error while processing {message}.", typeof(TMessage).Name);
        }
}