Interpret plug-in evidence
Trace output is only useful if you can read what it's telling you. In this short activity, interpret four pieces of plug-in evidence before you read the answers.
Interpret plug-in evidence
The eligibility-check plug-in runs when an employee creates a request. For each piece of evidence, decide what it tells you and what you change.
- The trace log shows the plug-in's own work regularly taking about 4 seconds, and request creation feels slow, but nothing fails.
- A request save fails with a
TimeoutException, and the request record isn't created at all, even though the step that ran long was a synchronous PostOperation step. - The Plug-ins dashboard shows the eligibility check running on almost every update to the
requesttable, including edits to fields it never reads. - Trace output shows the same plug-in running over and over inside one save, and execution stops with an error that Dataverse treats as an infinite loop.
Check your interpretations:
- It's over the 2-second guideline. There's no automatic failure, but it's the signal to reconsider synchronous execution. If the request doesn't need the result before it saves, register the step asynchronously.
- The 2-minute operation limit was hit. Dataverse throws
TimeoutExceptionand rolls back the whole operation, not just the step that ran long, so the request was never saved. - The step has no filtering attributes, or too many. Set filtering attributes to only the columns the eligibility logic reads so the step stops firing on unrelated updates.
- The depth limit was reached.
IExecutionContext.Depthrose each time the plug-in's own update triggered it again. Stop the plug-in from updating the table it's registered on, or scope it so its own changes don't retrigger it.
If any answer surprised you, reread the unit 2 section it comes from before the knowledge check.