Skip to content

Commit 96cf9ba

Browse files
authored
[Storage][Webjobs] Log if message decoding failed. (Azure#21475)
* log if message decoding has failed. * fix npe.
1 parent ee845bb commit 96cf9ba

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/src/QueueServiceClientProvider.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ internal class QueueServiceClientProvider : StorageClientProvider<QueueServiceCl
1919
{
2020
private readonly QueuesOptions _queuesOptions;
2121
private readonly ILoggerFactory _loggerFactory;
22+
private readonly ILogger<QueueServiceClient> _logger;
2223
private readonly IQueueProcessorFactory _queueProcessorFactory;
2324
private readonly SharedQueueWatcher _messageEnqueuedWatcher;
2425

@@ -35,6 +36,7 @@ public QueueServiceClientProvider(
3536
{
3637
_queuesOptions = queueOptions?.Value;
3738
_loggerFactory = loggerFactory;
39+
_logger = logger;
3840
_queueProcessorFactory = queueProcessorFactory;
3941
_messageEnqueuedWatcher = messageEnqueuedWatcher;
4042
}
@@ -76,10 +78,12 @@ private SyncAsyncEventHandler<QueueMessageDecodingFailedEventArgs> CreateMessage
7678
// This event is raised only in async paths hence args.IsRunningSynchronously is ignored.
7779
if (args.ReceivedMessage != null)
7880
{
81+
var receivedMessage = args.ReceivedMessage;
7982
var queueClient = args.Queue;
83+
_logger.LogWarning("Message decoding has failed! Check MessageEncoding settings. MessageId={messageId}.", receivedMessage.MessageId);
8084
var poisonQueueClient = QueueListenerFactory.CreatePoisonQueueReference(nonEncodingQueueServiceClient, queueClient.Name);
8185
var queueProcessor = QueueListenerFactory.CreateQueueProcessor(queueClient, poisonQueueClient, _loggerFactory, _queueProcessorFactory, _queuesOptions, _messageEnqueuedWatcher);
82-
await queueProcessor.HandlePoisonMessageAsync(args.ReceivedMessage, args.CancellationToken).ConfigureAwait(false);
86+
await queueProcessor.HandlePoisonMessageAsync(receivedMessage, args.CancellationToken).ConfigureAwait(false);
8387
}
8488
};
8589
}

0 commit comments

Comments
 (0)