A developer is running a one-time migration that creates two million contact rows in Dataverse through the SDK for .NET. The data is already validated, and the synchronous custom plug-ins registered on contact Create only enforce rules the source already meets. The migration must run as fast as possible without disabling the plug-in steps for other users. What should the developer do?
Select an answer to reveal the explanation.
Short Explanation
You want a hall pass for your own requests, not a fire drill that empties the whole building. The bypass optional parameter skips custom synchronous logic only for the calls that carry it, but the caller needs the special bypass privilege. The trap is assuming a customizer role already has it; by default only System Administrator does.
Full Explanation
Dataverse supports optional parameters that tell the platform not to run custom business logic for a specific request. BypassBusinessLogicExecution accepts CustomSync, CustomAsync, or both, and with CustomSync the custom synchronous plug-ins and workflows are skipped for that request only, while every other user's operations continue to trigger them. The calling user must hold the prvBypassCustomBusinessLogic privilege, which by default only the System Administrator role has; it can be added to other roles only through the API, not the role designer. Assuming the System Customizer role is enough fails because that role does not include the bypass privilege out of the box, so the request would be rejected. Disabling plug-in steps works mechanically but switches the logic off for every user and every integration during the load, which is exactly what the requirement forbids, and it relies on someone remembering to turn them back on. ExecuteMultiple only groups requests to reduce round trips; ContinueOnError controls whether processing stops on a fault and has no effect on whether plug-ins run. Exam caveat: the bypass does not skip logic from Microsoft-published solutions or core system plug-ins, and Power Automate flows are controlled by a separate mechanism. Operational check: run a small sample with the parameter and confirm the plug-in trace log shows no executions for those rows.