Trending Issue: InfoPath Forms issues with SP2010 workflows after September 2026 CU

After installing the September 2026 Cumulative Update (CU) for SharePoint Server Subscription Edition, some customers may experience issues with SharePoint 2010 workflows that rely on InfoPath Forms Services.

Symptoms

Following installation of the September 2026 CU, SharePoint 2010 workflows that depend on InfoPath Forms Services may fail with one of the following errors:

The form cannot be rendered. This may be due to a misconfiguration of the Microsoft SharePoint Server State Service. For more information, contact your server administrator.
The specified form template could not be found, or is not compatible with rendering in the browser. It might need to be republished as a browser-enabled form.

Cause

Both InfoPath Forms Services and SharePoint 2010 workflows have been deprecated for several years.

Support for these technologies ended on July 14, 2026. Beginning with the September 2026 CU, both features are disabled by default. As these components are no longer supported, Microsoft will not provide fixes for future bugs or security vulnerabilities affecting them.

Microsoft strongly recommends migrating any remaining solutions that depend on InfoPath Forms Services or SharePoint 2010 workflows as soon as possible.

Workaround

If your organization still relies on SharePoint 2010 workflows and InfoPath Forms Services, it is possible to temporarily re-enable the InfoPath Forms Services code path by following the steps below.

Important: This should be considered a temporary mitigation only. Customers are strongly encouraged to migrate affected business processes to supported technologies as soon as possible.
Security vulnerabilities discovered in these retired components will not be addressed.

Step 1: Install the required Update

Download and install the following package:
KB 5002927 – Fix to support reenabling InfoPath Forms Services

Important: do NOT run the SharePoint Configuration Wizard after this step!

Step 2: Run the PowerShell Script

Execute the following PowerShell script on a SharePoint server in the SharePoint Management Shell:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
[void][System.Reflection.Assembly]::LoadWithPartialName(
    "Microsoft.Office.InfoPath.Server"
)

# Disable retirement first.
$farm = Get-SPFarm

if (-not $farm.ServerDebugFlags.Contains(5023)) {
    [void]$farm.ServerDebugFlags.Add(5023)
    $farm.Update()
}

# Refresh the farm object and verify.
$farm = Get-SPFarm
if (-not $farm.ServerDebugFlags.Contains(5023)) {
    throw "Debug flag 5023 was not persisted."
}

$formService = $farm.Services |
    Where-Object {
        $_ -is [Microsoft.Office.InfoPath.Server.Administration.FormsService]
    } |
    Select-Object -First 1

if ($null -eq $formService) {
    throw "Forms Service not found."
}

$formService.AllowUserFormBrowserRendering = $true
$formService.AllowUserFormBrowserEnabling = $true
$formService.Update()

Write-Host "Debug flag set:" $farm.ServerDebugFlags.Contains(5023)
Write-Host "Rendering enabled:" $formService.AllowUserFormBrowserRendering
Write-Host "Browser enabling enabled:" $formService.AllowUserFormBrowserEnabling

 

Step 3: Run the SharePoint Configuration Wizard

After successfully executing the PowerShell script, run the SharePoint Configuration Wizard.

Important: The PowerShell script must be executed before running the SharePoint Configuration Wizard. This ensures that all required configuration changes are properly applied during the configuration process.

Additional Information

When SharePoint Server Subscription Edition was released in November 2021, both InfoPath Forms Services and SharePoint 2010-style workflows were officially documented as deprecated features.

These technologies reached End of Support on July 14, 2026.

As part of Microsoft’s ongoing efforts to improve the security posture of SharePoint Server Subscription Edition, these retired components will be removed entirely in a future product update. Since the underlying code base is no longer maintained, continuing to ship it indefinitely would present unnecessary security risk.

Microsoft will publish additional guidance in a future KB article before these components are permanently removed from the product.

51 Comments


  1. Thanks, that’s worked for me and 2010 approval workflows run again both starting manually and when adding new items to the list.

    Reply

    1. Same result here in our test farm.
      Thanx!

      Reply

  2. Hi Stefan,

    will this be implemented in a future CU release and all I have to do is run the PS command or will it always be necessary to install KB 5002927?

    BR Alex

    Reply

    1. Hi Alex,
      future CUs will also include the fix – but to enable this function the PowerShell script is mandatory.
      Cheers,
      Stefan

      Reply

      1. Hey Stefan,

        Would the script need to be run each time a CU is applied (say in October) or will once suffice?

        Thanks again!

        Reply

        1. Hi Daniel,
          once should suffice.
          Cheers,
          Stefan

          Reply

      2. Hi Stefan, i tried but the forms are not working. i applied sept patch somedays ago and got this link later so i patched again and form are not working. any suggestion.

        TypeName AutoProvision CompliantWithMinRole
        ——– ————- ——————–
        Forms Service True True

        Reply

        1. Hi Shiva,
          hard to say without more details.
          I would suggest to check the ULS log for relevant entries for the page request to identify what fails or was blocked.
          Cheers,
          Stefan

          Reply

  3. Good morning, Stefan. We have not installed the September 2026 CU yet. Does the fix above include the September CU or would we first install the September CU then install the fix and then run the Configuration Wizard? We are planning on installing this in our test environment so we would like to know the correct process. Thanks!

    Reply

    1. Hi Daniel,
      September CU is included in this fix.
      Cheers,
      Stefan

      Reply

  4. Stefan,

    Thanks so much for the post and the fix! Please confirm that the fix allows for the following functionality, after deploying Sept SPSE CU and the InfoPath Fix:

    New and previously existing 2010 CUSTOM WF’s can be published/republished, and run manually and automatically, for both WF’s with and without dependencies on InfoPath, when 2010 WF’s have been enabled at the site level
    New and previously existing 2010 APPROVAL WF’s can be created, and run manually and automatically, when 2010 WF’s have been enabled at the site level
    New and previously existing InfoPath Forms can be published/republished, and InfoPath forms will display in SharePoint

    Thank you!

    Reply

    1. Hi Fred,
      unfortunately no. Publishing and republishing of workflows has not been enabled and there is no plan to reenable this function.

      Support for SharePoint 2010-style workflows ended on July 14, 2026, and the functionality was further restricted with the September 2026 CU.
      While existing SharePoint 2010 workflows can still be enabled through PowerShell and the problem with the InfoPath dependencies were resolved using this fix and script, publishing new SharePoint 2010 workflows has been permanently disabled.

      Customers should also be aware that support for SharePoint 2010 workflows is being phased out, and the remaining functionality is expected to be removed from the product in a future cumulative update.
      The same applies to InfoPath Forms Services.

      Microsoft announced the end of support for SharePoint 2010 workflows back in 2021, providing a five-year transition period for customers to move to alternative workflow platforms.
      The expectation was that this would provide sufficient time to migrate to supported solutions such as SharePoint 2013 workflows, Power Automate, or third-party workflow products.

      Organizations that still depend on SharePoint 2010 workflows should prioritize the removal of these dependencies and accelerate migration planning.
      Given the current direction of the product, it is strongly recommended to complete this transition as soon as possible.

      Cheers,
      Stefan

      Reply

      1. Thanks, Stefan!

        That’s exactly what I needed to know.

        We’ve been trying to get our customer to migrate to M365 for 7 years now and have been working directly with Microsoft. There have just been a lot of huge hurdles we’re having to get over. Hopefully we’ll be there within a year.

        Reply

      2. Hi Stefan,

        In the September CU where publishing and republishing of 2010 workflows is disabled, If 2010 workflows are contained within a solution (.wsp) and a new subsite is created from that solution, would that prevent the workflows in the new subsite from being created.

        I feel like this counts as publishing workflows against the new lists in the new subsites and would therefore be blocked, but looking for confirmation.

        Thanks in advance,
        Darren

        Reply

        1. Hi Darren,
          to be honest – I don’t know.
          My suggestion would be to test it and confirm back here.
          Cheers,
          Stefan

          Reply

        2. Darren,

          I don’t if this will help as confirmation but in my test and prod domains, we have multiple site templates that contain 2010 workflows and are recreated often. I was able to create one of these subsites and the workflows indeed were created and were usable from the new subsite. Your experience may be different but this was a test case confirmation I needed to make before moving to our production domain. Hope this helps!

          Daniel

          Reply

          1. Hi Daniel,
            I checked back with the PG on this and need to correct my previous statement.
            Contrary to what was previously communicated, the COD included a code change that also re-enabled the creation and publishing of new workflows.
            Please do not interpret this as confirmation that this functionality will remain in the product long term.
            Cheers,
            Stefan


      3. Hi Stefan,
        As always, I appreciate the work you do here to help us out. We all owe you many thanks.

        One point I’d like some clarification on: “… publishing new SharePoint 2010 workflows has been permanently disabled.”

        I’ve installed KB5002927, followed your instructions with the script and now run on 16.0.20326.20158.

        I am still able to Publish and Re-publish 2010 workflows and Nintex workflows on sites where I have run Enable-SPLegacyWorkflow.

        Am I the lucky one? Or is the literal block to publish just alluding to an upcoming CU?

        TLDR: We are restructuring our sites within our farm and therefore will be moving (re-creating) some 2010 workflows that we have not yet migrated to another WF platform. I’m just trying to gauge impact to our effort.

        Reply

  5. Is this “fix” with new build number making the old September CU obsolete? If so, why not update the original post and Sep CU with the new fix and new buildnumber? Is that something you will do when you have time or is this fix a sidestep from the original patch tree branch so to speak?

    Reply

    1. Hi Pierre,
      yes – you can install the new fix instead of September CU.
      It is an intermediate fix built between September and October CU.
      Cheers,
      Stefan

      Reply

  6. hi Stefan
    unfortunately, the script fails at the line:
    $formService.AllowUserFormBrowserEnabling = $true
    with the error: feature is depredicated and can’t be enabled.
    Is there a way to reenable this feature anyway?
    cheers,
    Werner

    Reply

    1. Same happened to me at first, close and re-open your PowerShell session after installing the update before running the script.

      Reply

  7. Hey Stefan,

    I am currently applying the September 2026 CU to our SPSE test farm. I ran the script above and ran the Enable-SPLegacy workflow command against a site collection I know we had 2010 approval workflows on but I am getting Failed On Start messages when trying to trigger them? I know they are not supported but is there perhaps any guidance to look at for this issue.

    Thank you.

    Reply

    1. Stefan,

      Please disregard as we did not apply the July 2026 CU to our SharePoint SE farm, and we are being hit with the issue you identified before. We are working to apply the change you provided there. I apologize for the extra post and inconvenience.

      Thanks for all you do,

      Reply

  8. Hi Stefan,
    Thank you for all of the communication you’ve handled for the community this month, we appreciate it.
    Will the hotfix have a separate KB article that would track known issues? We’ve been looking for its KB article without success.

    Thank you,
    Chad

    Reply

    1. Hi Chad,
      afaik no KB article is planned for this fix.
      Cheers,
      Stefan

      Reply

  9. Hi Stefan!

    First, thank you for your splendid work!
    I would be lost without your information.

    I have a question about Microsofts future plans for workflows in Sharepoint Subscription Edition.
    This is my understanding so far.

    Workflow 2010 and Infopath is deprecated and will soon or later dissapear completly
    2013 Workflows is heading the same way
    Sharepoint Designer is deprecated
    Visual Studio have workflow capabilities but announces the VS 2026 is cutting that support
    Visual Studio 2022 has workflow capabilities and has a long livecycle?
    MS will support Sharepoint Workflow Manager as long as SP Subscription is alive.

    I have farms that i cant migrate to SP Online.

    So im left with a platform that cant handle workflows, no dedicated tools and still MS provides a workflow engine? SWFM.

    My question:
    For on prem “Sharepoint Subscription Edition” there will be no way to use or develope workfows?

    Reply

    1. Hi Micke,
      for 2010 workflows this is correct.
      For 2013 workflows this is not correct. There is currently no plan to remove this feature.
      SharePoint Workflow Manager are coupled with 2013 workflows and there is currently no plan to drop support for it.
      Cheers,
      Stefan

      Reply

      1. Thank you Stefan for your answer!!

        Cheers,
        /Micke

        Reply

  10. When running the uber_fix it creates two processes in task monitor, and its stuck until we kill the process with least amount of memory/ cpu to make the installation go through.

    Reply

  11. Hi Stefan,
    are there any known issues with running the PowerShell script after completing the Configuration Wizard?
    Also, will the fix still remain effective if the Configuration Wizard is executed again after the script has been run?

    Thank you

    Reply

    1. Hi Sandra,
      I’m not aware of any issue with PowerShell script.
      What type of scripts do you have issues?
      – Script that run in the SharePoint managements shell?
      – SharePoint related scripts which run in other PowerShell windows?
      – Regular PowerShell scripts unrelated to SharePoint?
      Also: what specific issue do you see?
      Cheers,
      Stefan

      Reply

      1. Hi Stefan,

        I’m referring to the issue described in this article.

        During the CU installation of KB5002927, the PowerShell script mentioned in step 2 was unfortunately not executed before running the Configuration Wizard. After noticing this, the script was executed and the Configuration Wizard was run again.

        However, the InfoPath forms are still not loading.

        Could this be related to the order in which the steps were performed? In other words, does the workaround still take effect if the script is executed after the Configuration Wizard and the wizard is run again afterwards, or could a different issue be causing the problem?

        Thanks,
        Sandra

        Reply

        1. Hi Sandra,
          in this case you need to go to the InfoPath Forms Services settings in the Central Admin website and enable the “Render Form form templates that are browser-enabled by users” setting manually.
          Cheers,
          Stefan

          Reply

          1. Solution found:
            The list form mappings were incorrectly configured.

            Before investigating the form mappings, all your described remediation steps and configuration changes had already been applied and verified. Despite this, the InfoPath forms were still not loading correctly.

            Findings:
            The form mappings for Display, Edit, and New were pointing to the default SharePoint pages:
            DispForm.aspx
            EditForm.aspx
            NewForm.aspx

            Instead of the InfoPath-specific pages:
            displayifs.aspx
            editifs.aspx
            newifs.aspx

            Resolution:
            In SharePoint Designer, the list form mappings were reviewed and corrected, once the mappings were updated, the browser-enabled InfoPath forms were rendered correctly again.

            Best regards,
            Sandra


  12. Hi Stefan,

    After applying this fix list, the workflows are working. However, the out-of-the-box Page Approval workflows are still failing when they start.

    We have a large number of classic publishing, public-facing sites that rely on the out-of-the-box Page Approval workflow for editing and approving pages.

    Could you also suggest how we should replace these Page Approval workflows going forward?

    If the recommendation is to use SharePoint 2013 workflows, that would require SharePoint Designer. If we use Power Automate instead, we’ll need to find a way to trigger the flow specifically when a page requires approval, rather than triggering it every time a page is edited or a new item is created.

    Please let me know what approach you would recommend for replacing the existing Page Approval workflows while preserving the current approval process.

    Thanks,

    Reply

    1. Hi Asay,
      please check the ULS log for specific error messages. It seems you are running into a separate issue.
      Cheers,
      Stefan

      Reply

    1. Hi Prabhu,
      please check the ULS log for specific errors and let us know what error you get.
      Cheers,
      Stefan

      Reply

  13. Thanks Stefan! Here is the ULS log file for reference.

    Please note that this issue occurs when we publish a page on a site created using the Publishing Site with Workflow template. After applying the fix, the list workflows are working as expected; however, the out-of-the-box Page Approval workflows are still failing. We are running SharePoint Subscription Edition.

    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Legacy Workflow Infrastructure c42q0 High Potentially malicious xoml node: <ns0:RootWorkflowActivityWithData.WorkflowFields> </ns0:RootWorkflowActivityWithData.WorkflowFields> <ns0:OnWorkflowActivated.CorrelationToken> </ns0:OnWorkflowActivated.CorrelationToken> <ns0:CoerceStringActivity.Value> </ns0:CoerceStringActivity.Value> <ns0:ClearArrayListActivity x:Name=”ID10355″

    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Web Parts c42rh Medium Workflow Compilation XPath killswitch resulted in an exception: System.InvalidOperationException: This feature has been temporarily disabled. at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.CompileBytes(Byte[] xomlBytes, Byte[] rulesBytes, Boolean doTestCompilation, String assemblyName, SPWeb web, Boolean forceNewAppDomain) 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope: (WorkflowTelemetryScope) Execution Time=74.8656; CPU Milliseconds=50; SQL Query Count=8; Parent=Workflow.WorkflowManager.StartWorkflow 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Monitoring nass Medium ____Service Calls=0 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Monitoring nass Medium ____SPRequest Objects=1 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Monitoring nass Medium ____Execution Time=74.8656 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Monitoring nass Medium ____SQL Query Count=8 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Monitoring arm3c High ____CPU Milliseconds=50 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Legacy Workflow Infrastructure 72fs Unexpected RunWorkflow: System.InvalidOperationException: This feature has been temporarily disabled. at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.CompileBytes(Byte[] xomlBytes, Byte[] rulesBytes, Boolean doTestCompilation, String assemblyName, SPWeb web, Boolean forceNewAppDomain) at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.LoadXomlAssembly(SPWorkflowAssociation association, SPWeb web) at Microsoft.SharePoint.Workflow.SPWinOeHostServices.LoadDeclarativeAssembly(SPWorkflowAssociation association, Boolean fallback) at Microsoft.SharePoint.Workflow.SPWinOeHostServices.CreateInstance(SPWorkflow workflow) at Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(SPWorkflowHostService host, SPWorkflow workflow, Collection1 events, TimeSpan timeOut) at Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow workflow, Collection1 events, SPWorkflowRunOptionsInternal runOptions) 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 OWSTIMER.EXE (0x244C) 0x4DC4 SharePoint Foundation Database bggfq Medium UsageLoggedSqlSession: Before executing command against DevInt_Config. Command is proc_ScheduleTimerJob
    09/30/2026 16:01:54.78 OWSTIMER.EXE (0x244C) 0x4A30 SharePoint Foundation Database bggfq Medium UsageLoggedSqlSession: Before executing command against DevInt_Config. Command is proc_StartTimerRunningJob a63492ba-5a6b-4e0b-93d6-9ac7f8f47552

    Reply

    1. Hi Asay,
      this snippet seems to be too late as it only shows the final result and not the decision making.
      In general this message occurs if the workflow references types which are not registered as authorizedTypes in the web.config.
      You should see rejected types earlier in the ULS log with the same correlation.
      Cheers,
      Stefan

      Reply

  14. Thanks, Stefan! Here is the remaining log file.

    I checked the web.config file, and I see the following authorizedTypes entries.

    …
    09/30/2026 16:01:54.73 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Files abnwl Medium Leaving Monitored Scope: (CobaltStream(SPHostBlobStore)) Execution Time=1.0118; CPU Milliseconds=0; SQL Query Count=0; Parent=SPCoordinatedStreamBufferFactory.CreateFromDocumentRowset 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.73 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Legacy Workflow Infrastructure eev1 Medium Workflow on association ‘Page Approval’ is about to be compiled 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.75 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Legacy Workflow Infrastructure c42qz High CompileBytesPERF: It took 0 ticks to load the authorized types. 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.77 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Legacy Workflow Infrastructure 4letu High Block the namespace: clr-namespace:Microsoft.SharePoint.WorkflowActions;Assembly=Microsoft.SharePoint.WorkflowActions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null, type: RootWorkflowActivityWithData 5a6140a2-7c17-20e1-3f99-03168f1ef1be
    09/30/2026 16:01:54.78 OWSTIMER.EXE (0x244C) 0x4DC4 SharePoint Foundation Database bggfq Medium UsageLoggedSqlSession: Before executing command against DevInt_Config. Command is proc_ScheduleTimerJob
    09/30/2026 16:01:54.78 OWSTIMER.EXE (0x244C) 0x2BB4 SharePoint Foundation Database bggfq Medium UsageLoggedSqlSession: Before executing command against DevInt_Config. Command is proc_StartTimerRunningJob 6a4199be-84ef-48da-8241-78b38113b9ad
    09/30/2026 16:01:54.78 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Legacy Workflow Infrastructure c42q0 High Potentially malicious xoml node: <ns0:RootWorkflowActivityWithData x:Class=”Microsoft.SharePoint.Workflow.ROOT”
    …

    Reply

    1. Hi Asay,
      this is the relevant part:

      09/30/2026 16:01:54.77 w3wp.exe (0x079C) 0x41FC SharePoint Foundation Legacy Workflow Infrastructure 4letu High Block the namespace: clr-namespace:Microsoft.SharePoint.WorkflowActions;Assembly=Microsoft.SharePoint.WorkflowActions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null, type: RootWorkflowActivityWithData 5a6140a2-7c17-20e1-3f99-03168f1ef1be

      This is covered in general in the following article:
      https://blog.stefan-gossner.com/2026/07/17/trending-issue-sharepoint-2010-workflows-are-failing-after-installing-july-2026-cu/

      The interesting part here is that in your case the reference is for a very old dll from SharePoint Server 2010 (14.0.0.0) which is not allow listed.
      Ensure to add also this assembly in the web.config:

      <System.Workflow.ComponentModel.WorkflowCompiler>
      <authorizedTypes>
      <targetFx version=”v4.0″>
      <authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ Namespace=”System.CodeDom” TypeName=”*” Authorized=”True” />
      <authorizedType Assembly=”Microsoft.SharePoint.WorkflowActions, Version=16.0.0.0, Culture=neutral, PublicKeyToken=null” Namespace=”Microsoft.SharePoint.WorkflowActions” TypeName=”*” Authorized=”True” />
      <authorizedType Assembly=”Microsoft.SharePoint.WorkflowActions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null” Namespace=”Microsoft.SharePoint.WorkflowActions” TypeName=”*” Authorized=”True” />
      </targetFx>
      </authorizedTypes>

      Cheers,
      Stefan

      Reply

      1. Thanks, Stefan!

        It’s working after adding the following entries. As you mentioned, it was looking for the 14.0.0.0 version in our case for the out-of-the-box page approval workflow.

        Really appreciate your quick response and help!

        <authorizedType Assembly="Microsoft.SharePoint.WorkflowActions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="Microsoft.SharePoint.WorkflowActions" TypeName="*" Authorized="True" />
        <authorizedType Assembly="Microsoft.Office.Workflow.Actions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="Microsoft.Office.Workflow.Actions" TypeName="*" Authorized="True" />
        <authorizedType Assembly="Microsoft.SharePoint.WorkflowActions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="Microsoft.SharePoint.WorkflowActions.WithKey" TypeName="*" Authorized="True" />
        <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="*" Authorized="True" />
        <authorizedType Assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="*" Authorized="True" />

        Reply

        1. Perfect! Thanks for the follow up!
          🙂

          Reply

  15. Hi Stefan ,

    We have deployed September 2026 CU {16.0.20326.20158} / kb5002927. We get an error Page Approval Workflow Failed to start

    Error
    Workflow Compilation XPath killswitch resulted in an exception: System.InvalidOperationException: This feature has been temporarily disabled. at Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.CompileBytes(Byte[] xomlBytes, Byte[] rulesBytes, Boolean doTestCompilation, String assemblyName, SPWeb web, Boolean forceNewAppDomain)

    CompileBytes: Web https://hidden&gt;, Site https://hidden, Tenant , Error parsing rules file: <RuleDefinitions.Conditions> <RuleExpressionCondition.Expression> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> Equal </ns0:CodePrimitiveExpression.Value> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePropertyReferenceExpression.TargetObject> </ns0:CodePropertyReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> WorkflowOutcome </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> <ns0:CodePrimitiveExpression.Value> Approved </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> </ns0:CodeBinaryOperatorExpression.Left> </RuleExpressionCondition.Expression> <RuleExpressionCondition.Expression> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> Equal </ns0:CodePrimitiveExpression.Value> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> </ns0:CodeBinaryOperatorExpression.Left> </RuleExpressionCondition.Expression> <RuleExpressionCondition.Expression> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> Equal </ns0:CodePrimitiveExpression.Value> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePropertyReferenceExpression.TargetObject> </ns0:CodePropertyReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> WorkflowOutcome </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> <ns0:CodePrimitiveExpression.Value> Rejected </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> </ns0:CodeBinaryOperatorExpression.Left> </RuleExpressionCondition.Expression> <RuleExpressionCondition.Expression> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> NotIsEmpty </ns0:CodePrimitiveExpression.Value> <ns0:CodePropertyReferenceExpression.TargetObject> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodePropertyReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> </ns0:CodeBinaryOperatorExpression.Left> </RuleExpressionCondition.Expression> <RuleExpressionCondition.Expression> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> GreaterThan </ns0:CodePrimitiveExpression.Value> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> 0 </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> </ns0:CodeBinaryOperatorExpression.Left> </RuleExpressionCondition.Expression> <RuleExpressionCondition.Expression> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> Equal </ns0:CodePrimitiveExpression.Value> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> </ns0:CodePrimitiveExpression.Value> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> AutoStartChange </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> <ns0:CodePrimitiveExpression.Value> false </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> </ns0:CodeBinaryOperatorExpression.Left> </RuleExpressionCondition.Expression> <RuleExpressionCondition.Expression> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> Equal </ns0:CodePrimitiveExpression.Value> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeMethodInvokeExpression.Method> <ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodReferenceExpression.TargetObject> </ns0:CodeMethodInvokeExpression.Method> </ns0:CodeBinaryOperatorExpression.Left> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeBinaryOperatorExpression.Right> <ns0:CodePrimitiveExpression.Value> true </ns0:CodePrimitiveExpression.Value> </ns0:CodeBinaryOperatorExpression.Right> <ns0:CodeBinaryOperatorExpression.Left> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> Equal </ns0:CodePrimitiveExpression.Value> <ns0:CodeMethodInvokeExpression.Parameters> <ns0:CodeFieldReferenceExpression.TargetObject> </ns0:CodeFieldReferenceExpression.TargetObject> <ns0:CodePrimitiveExpression.Value> </ns0:CodePrimitiveExpression.Value> <ns0:CodeFieldReferenceExpression.TargetObject>

    1) Enable-SPLegacyWorkflow is enabled on the web application
    2) web.config is changed from 16.0.0.0 to 14.0.0.0
    <authorizedType Assembly=”Microsoft.SharePoint.WorkflowActions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null” Namespace=”Microsoft.SharePoint.WorkflowActions” TypeName=”*” Authorized=”True”

    <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodeBinaryOperatorExpression" Authorized="True" />
    <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodePrimitiveExpression" Authorized="True" />
    <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodeMethodInvokeExpression" Authorized="True" />
    <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodeMethodReferenceExpression" Authorized="True" />
    <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodeFieldReferenceExpression" Authorized="True" />
    <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodeThisReferenceExpression" Authorized="True" />
    <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodePropertyReferenceExpression" Authorized="True" />
    <authorizedType Assembly="Microsoft.SharePoint.WorkflowActions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="Microsoft.SharePoint.WorkflowActions" TypeName="*" Authorized="True" />

    Post-September-2026 ; Workflow Compilation XPath killswitch affecting the out-of-box Publishing Approval workflow, because that is the exact failure point shown in your ULS

    (Get-SPFarm).ServerDebugFlags
    5023

    PS C:> (Get-SPFarm).EnablePreParseSecurityCheckForWorkflow
    True

    I have tried with $False ; Results are same. Hence reset ot back to $true

    Any thoughts please?

    Reply

    1. First of all: do not change the version numbers in the authorizedTypes. If rquired you need to add new lines but never modify those that are already there.
      Second: ensure to search you ULS log for entries like this to identify which assemblies, namespaces and types are blocked and need to be allow listed:

      SharePoint Foundation Legacy
      Workflow Infrastructure
      4letu
      High
      Block the namespace: clr-namespace:Microsoft.SharePoint.WorkflowActions;Assembly=Microsoft.SharePoint.WorkflowActions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null, type: RootWorkflowActivityWithData
      5a6140a2-7c17-20e1-3f99-03168f1ef1be

      The actual namespace and type listed behind clr-namespace is what you need to allow list.

      Cheers,
      Stefan

      Reply

  16. PS C:\temp\jul-cufix-stefan-sp2010workflow> .\SP2010-WORKFIX-WEBCONFIG-Fix-SystemCodeDom.ps1

    cmdlet SP2010-WORKFIX-WEBCONFIG-Fix-SystemCodeDom.ps1 at command pipeline position 1
    Supply values for the following parameters:
    WebApplicationUrl: https://blocked —– /
    Modification already exists.
    PS C:\temp\jul-cufix-stefan-sp2010workflow>

    Reply

    1. Hi Stefan,

      Sep’2026 CU removed web.config entry which was added previously.

      Fix-SystemCodeDom.ps1 message Modification already exists is a false positive. I had to manually add the entry

      SP2010 Legacy Workflow are now working as expected.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.