LowCodeStacks™
Sign in

"Solution is blocked from importing due to critical violations"

A managed environment stopped or warned on your solution import. Find the critical solution checker rule behind it, fix it, and see what admins can change.

Governance & adminFix a problem8 min read

Checked against Microsoft Learn · 5 sourcesPosted by the Maker DeskHow we write guides

You import a solution into another environment and it stops before anything happens: "Error: Solution is blocked from importing due to critical violations. Fix these violations, then retry the import." The target is a managed environment, and its admin has turned on solution checker enforcement in Block mode. On import, solution checker found at least one problem it rates Critical, so the import was cancelled. The answer is to find that rule, fix the component in your source environment, and import again. This guide shows where to look and what the admin settings do.

  • Import fails with Error: Solution is blocked from importing due to critical violations. Fix these violations, then retry the import.
  • Or the import goes through with Warning: There are critical violations in this solution. You can block solutions with critical violations by enabling Solution Checker enforcement in Managed Environments settings page.
  • The message may include a link to the check results.
  • Admins get a summary email about the import, unless the environment is on Warn and an admin has turned off warning emails.

Why the import stopped

Solution checker is Microsoft's static analysis of solution components against a set of best-practice rules. In a managed environment, an admin can make it run on every import of a custom solution, at one of three levels. Learn names them:

LevelWhat happens on import
NoneNo automatic check. Imports behave as normal.
WarnThe solution is checked. If it has critical issues, you're warned, but the import carries on; afterwards a message says the solution had validation issues.
BlockThe solution is checked. If it has critical issues, the import is cancelled before it starts, so nothing in the environment changes.

Only rules with Critical severity block an import. High, Medium and lower findings don't. In both Warn and Block, a summary email goes out with the details.

So the error says Block is on and the check found a critical rule. The warning says Warn is on: your import worked, but the same import would fail if the admin switched to Block.

From a blocked import to a clean one
  1. Step 1Import the solution
  2. Step 2Solution checker runs on import
  3. Step 3A critical rule blocks it
  4. Step 4Find the rule in the results
  5. Step 5Fix it in the source environment
  6. Step 6Export and import again

Find the critical rule

If the message has a results link, use it. Learn says it downloads a SARIF file: a JSON report in a standard format for static analysis results, which SARIF viewers can open. The admin's summary email can also link to the results, though Learn warns that link can expire.

If there's no link, run solution checker yourself on the same solution, in the environment where you build it. Solution checker works on unmanaged solutions that can be exported, so run it in your development environment, not on the managed copy. Learn's troubleshooting page sets two conditions so your results match the import check:

  • Use the solution checker ruleset. Running it from Power Apps does this. So does pac solution check, which uses that ruleset by default. If you name a ruleset by ID, use 0AD12346-E108-40B8-A956-9A8F95EA18C9.
  • Don't pass file exclusions or rule overrides. The import check doesn't apply them, so your run shouldn't either.

From Power Apps

Learn's steps: in Power Apps, open Solutions, select the ... beside the unmanaged solution, point to Solution checker and select Run. The check can take a few minutes; you get an email and a notification when it's done. Then use the same menu's View results to see the issues, sorted by issue, location or severity, or Download results for a zip file that holds an Excel report. Look for the rows with Critical severity.

From the command line

With Power Platform CLI, check the solution file you're about to import:

powershell
pac solution check --path .\LowCodeStacksApp_1_0_0_1.zip --outputDirectory .\checker-results

Leave out --excludedFiles and --ruleLevelOverride. The command also takes --geo to pick the service's region; Learn's example uses UnitedStates. This is per Microsoft's documentation; we haven't run it.

The rules that can block

Learn's rules table lists every rule with its severity. As of 28 October 2026, these are the ones rated Critical:

ComponentRuleWhat it flags
Plug-in or workflow activitymeta-remove-dup-regThe same plug-in step registered twice
Web resourceuse-asyncHTTP and HTTPS calls made synchronously
Web resourceavoid-crm2011-service-odataCalls to the Dynamics CRM 2011 OData 2.0 endpoint
Web resourceavoid-crm2011-service-soapCalls to the Dynamics CRM 2011 SOAP services
Web resourceavoid-browser-specific-apiInternet Explorer legacy APIs or browser plug-ins
Web resourceavoid-evaleval or its equivalents in JavaScript
Web resourceavoid-ui-refreshribbonrefreshRibbon in form onload or an enable rule
Canvas appapp-formula-issues-highFormula issues in a canvas app (Learn's description only points to the Power Fx formula reference)

Each of these rules on Learn's page links to more information; for app-formula-issues-high that's the general formula reference rather than a fix for one rule. Check the live table before you rely on this list: the solution checker ruleset picks up rules as Microsoft adds or removes them.

Fix it and import again

  1. In the source environment, fix each component the critical findings name. The report's Component, Location and Line # columns point to where.
  2. Run solution checker again until no Critical rows remain. Lower severities are worth fixing too, but they won't block.
  3. Export the solution again and import the new file.

A clean check doesn't promise a clean import. Learn notes that solution checker can't see the target environment's state, so an import can still depend on other solutions or settings there.

If you deploy with pipelines, run the checker before the import step. Our guides to Power Platform ALM with GitHub Actions and Azure DevOps for Power Platform both cover that.

For admins: the enforcement settings

Learn's steps to set the level:

  1. Sign in to the Power Platform admin center.
  2. Select Manage in the navigation pane, open the list of environments, and choose the managed environment.
  3. On the command bar, select the option to edit its Managed Environments settings.
  4. Under Solution checker enforcement, choose the level.

Learn's pictures of these settings all date from 2023; in them the level is a slider marked None, Warn and Block. Its PowerShell section still refers to a slider. We haven't redrawn the settings because we can't confirm how they look now.

Learn describes two more settings:

  • Excluded Rules: a dropdown of rules, grouped by category and sorted by severity, that you can leave out of enforcement. Learn's example is a rule that would take a lot of work to fix across a solution while you still enforce the rest.
  • Validation emails: summaries go to Power Platform administrators, Dynamics 365 service administrators and the weekly digest recipients. A checkbox cuts them down; per Learn, with it selected no emails are sent in Warn mode, and in Block mode only the ones for critical violations that block an import are sent.

Enforcement isn't available while the environment is in administration mode.

There's a PowerShell route too: Learn uses a SetManagedEnvironmentSolutionCheckerEnforcementLevel function from Microsoft's PowerApps-Samples repository, which you import first. Its levels are none, warn and block. One thing to watch: as published on 28 October 2026, Learn's rule-exclusions example says it turns on block mode but passes -Level none. Set the level you actually want.

For how this fits with other managed environment controls, see our Power Platform admin interview questions and our guide to the sharing is disabled banner.

Do

  • Run solution checker in development before every export, with the default ruleset.
  • Start a new managed environment on Warn, read the emails, then move to Block.
  • Record why a rule is excluded and review it later.

Don't

  • Don't ask an admin to turn enforcement off to get one import through; fix the rule or agree an exclusion.
  • Don't test with exclusions or overrides and expect the import to match.
  • Don't read a Warn import as a pass; it would be blocked under Block.

The steps in this guide follow Microsoft's documentation as of 28 October 2026; we haven't run them in a tenant.

Sources

Add LowCodeStacks as a preferred source on Google

Did this fix it?

Comments

No comments yet. Share what worked for you.

Sign in to comment. Comments show under a display name you choose, never your email.