The deprecated dead_lettering_on_filter_evaluation_exceptions field will be removed, since this is no longer used.
I am not sure why this attribute was removed from Terraform ā I cannot find any reference in the Azure documentation that this setting is or will be deprecated. When I create a subscription with Terraform, this property defaults to EnableDeadLetteringOnFilterEvaluationExceptions=true.
Is there any adverse behavior we would expect to encounter with NServiceBus if this property is left as ātrueā instead of āfalseā? It would seem that properly configured subscription filters in an NServiceBus topology would never be expected to throw an exception. Are there some edge-cases that I am overlooking?
The upgrade guide deprecation note is puzzling to me as well.
Iāve looked into this and something here doesnāt seem to be right. Subscriptionās EnableDeadLetteringOnFilterEvaluationExceptions is not deprecated. You can see it in the current and the future (preview) .NET clients. Moreover, the property deadLetteringOnFilterEvaluationExceptions is still part of the latest version of the ARM template for subscriptions. Itās optional but not deprecated. And the default should never be set to true. On the contrary, it should be set to false.
Is there any adverse behavior we would expect to encounter with NServiceBus if this property is left as ātrueā instead of āfalseā? It would seem that properly configured subscription filters in an NServiceBus topology would never be expected to throw an exception. Are there some edge-cases that I am overlooking?
The feature is intended for testing (lower environments) and verification, not for production. You donāt want to throw an exception on the publisherās side in production if a filter for a specific message doesnāt exist for subscribers.
I would suggest opening a support case with Terraform to get more details. Iāve also sent this question to the Azure Service Bus team to confirm my statements as well as to see if they could reach out to Terraform for clarification.
If that is the case, it would seem that the default value of EnableDeadLetteringOnFilterEvaluationExceptions=true is coming from the Azure service itself.
Iāve left a comment on the issue youāve raised, suggesting to raise an issue with the ASB broker as well. The default value of true for EnableDeadLetteringOnFilterEvaluationExceptions that ARM is applying when the parameter is not specified feels off. Especially for production environments as it goes against SB team recommendations to use this feature for testing purposes only. A recommendation that should be documented here.
I also received confirmation from our MS support team that this property is not deprecated:
I found out that the EnableDeadLetteringOnFilterEvaluationExceptions is not deprecated, so looks like Terraform needs to fix it.
Second, what this means is, lets say I have a filter that is
x < 1/y
The subscription will look for messages that have āxā and āyā in it and accept the message, but then, if it finds out that āyā is zero, its going to throw an exception.
It will then put the message in the dead letter queue.