fix: Add counter to onError trigger to break possible loops #4648
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#minor
Description
This PR adds a counter in the loop that executes the onError trigger to detect and break possible infinite loops when there's an error inside the onError handler.
It also includes a new property to the onError, to make the limit of executions configurable for the users (default value: 10).
Specific Changes
executionLimit
property to the onError trigger and read it in the override of the execute method.DialogHelper
to evaluate the execution limit property and break the loop in case of detecting one.TurnPath
to be able to store the value in memory.Microsoft.OnError.schema
andMicrosoft.OnError.uischema
to include the new property.conditional.tests
to cover the new functionality.Testing
These images show the scenarios we tested with the new implementation.