Why an async plug-in that raises InvalidPluginExecutionException does not retry
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result these questions will not appear on the review screen. You are designing an integration that sends created records from a custom Dataverse table to an exposed REST API. When the REST API is unavailable, you must be able to retry if the response status code is 500. You need to select a solution that meets the requirement. Solution: Register an asynchronous plug-in that makes an HTTP request to the REST API. Raise an InvalidPluginExecutionException that is configured to retry when the request fails. Does the solution meet the goal?
Community Votes
78% of anonymous learners picked answer B. Votes are pick records left by other test-takers — they are not the verified answer.
Community Insight
InvalidPluginExecutionException cancels/rolls back the operation; it does not configure retries. Dataverse does not automatically retry asynchronous plug-in executions, so a transient 500 from the REST API will simply fail rather than be retried.
An integration sends created Dataverse records to a REST API and must retry when the API returns 500. The proposed solution registers an async plug-in and raises InvalidPluginExecutionException to trigger retry. Dataverse asynchronous plug-ins do not auto-retry on failure, so the requirement is not met.
Assuming raising an exception 'configures a retry.' Exceptions signal failure, they do not schedule retries. The correct retry pattern uses a durable queue (Azure Service Bus) with a dead-letter queue, not a plug-in exception.
Community Discussion (6 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
Expert Analysis
Why the Answer Is Correct
Dataverse asynchronous plug-ins are not automatically retried when they fail. Raising an InvalidPluginExecutionException merely aborts the operation and records the error; it does not instruct the platform to re-execute the step. Therefore the solution cannot guarantee a retry when the REST API returns 500.Why the Other Options Are Wrong
There is no 'A. Yes' path that is correct here. The false assumption is that an exception triggers retry; in Dataverse it does not. A durable messaging pattern (Service Bus queue plus dead-letter queue) is the supported way to achieve retry semantics.Community Comment Notes
busitecgmbh (likes=3) states that raising InvalidPluginExecutionException cancels the process and cannot be configured to retry. loftuscheek (likes=1) and KucaStonojka (likes=2) both confirm async plug-ins do not auto-retry by default.Official Reference
Related Analysis
Practice All PL-400 Questions
Access 85 questions with complete answers and detailed explanations.
View Full PL-400 Practice Test →