0

We are using Webjob latest SDK for our web job, we see weird behavior that some time our queue messages goes to poison queue rather than actual queue. I don't find any error in webjob dashboard also. Has any one faced this kind of issue.

public async static Task  ProcessQueueMessage( [QueueTrigger("%QueueName%")] Parameter message, int dequeueCount, TextWriter log )
{
    try
    {
    //read parameters
    //perform db operation last for 2-5 mins
    }
    catch
    {
    }
}
public static void BindToPoisonQueue( [QueueTrigger("QueueName-poison")] parameter message, TextWriter log )
    {
        log.Write("Problem with message: " + message);
    }

I don't find issue with code, but not sure why messages automatically redirected to poison queue instead of actual queue.

Matt
  • 14,906
  • 27
  • 99
  • 149
user145610
  • 2,949
  • 4
  • 43
  • 75

1 Answers1

1

The SDK only moves a message to the poison queue if it has failed processing a number of times greater than the retry count configured via JobHostQueuesConfiguration.MaxDequeueCount. Check the message details - it might be that the message body is failing to deserialize into your Parameter POCO Type.

Also, please recheck your Dashboard - each time a function fails, you'll get a "Failed" entry with the details. I just verified this myself, in a case where the function fails because the message fails deserialization.

mathewc
  • 13,312
  • 2
  • 45
  • 53
  • Hi Mathew, I don't see any error message in webjob dashboard. Some times, I see messages are properly picked up. Any clue to trouble shoot this kind of issues. – user145610 Nov 06 '15 at 21:49