Question 490
A plug-in updates the same contact in PostOperation, causing repeated invocation until platform depth fails. Which TWO complementary steps provide the intended implementation AND the evidence needed to validate it? Select TWO.
Explanation
Correct Answers
Inspect execution depth, parent context, plugin registration stages, update attributes and processing marker. These observations separate this failure from adjacent capabilities or permissions. Blocking all depth greater than one can suppress legitimate nested operations; fix the causative loop and design safe checks. The relevant implementation is: Design plug-in logic that avoids self-triggering Update loops and guard against repeated processing with idempotent business conditions. This is the diagnostic/verification half of the required two-step answer.
Design plug-in logic that avoids self-triggering Update loops and guard against repeated processing with idempotent business conditions. This choice implements the controlling platform requirement rather than masking the symptom. Blocking all depth greater than one can suppress legitimate nested operations; fix the causative loop and design safe checks. Verify the change using: Inspect execution depth, parent context, plugin registration stages, update attributes and processing marker. This is the implementation half of the required two-step answer.
Incorrect Answers
The application presents agent output in the right user session and aborted requests do not execute delayed unintended writes. This step belongs to Copilot Studio client library consumption rather than the complementary pair here. The required action is: Design plug-in logic that avoids self-triggering Update loops and guard against repeated processing with idempotent business conditions. And its evidence is: Inspect execution depth, parent context, plugin registration stages, update attributes and processing marker.
Use PreValidation for early validation outside the main database transaction where appropriate and throw InvalidPluginExecutionException for unsupported operations. This step belongs to Dataverse PreValidation plug-in and aborting operations rather than the complementary pair here. The required action is: Design plug-in logic that avoids self-triggering Update loops and guard against repeated processing with idempotent business conditions. And its evidence is: Inspect execution depth, parent context, plugin registration stages, update attributes and processing marker.
Inspect asynchronous request state, queue work item ID, job timeout, concurrency limits and idempotent completion marker. This step belongs to Asynchronous background operations and safe batching rather than the complementary pair here. The required action is: Design plug-in logic that avoids self-triggering Update loops and guard against repeated processing with idempotent business conditions. And its evidence is: Inspect execution depth, parent context, plugin registration stages, update attributes and processing marker.

