Interpret plug-in evidence

Completed

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 request table, 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 TimeoutException and 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.Depth rose 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.