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:
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.
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.

Permalink
Thanks, that’s worked for me and 2010 approval workflows run again both starting manually and when adding new items to the list.
Permalink
Same result here in our test farm.
Thanx!
Permalink
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
Permalink
Hi Alex,
future CUs will also include the fix – but to enable this function the PowerShell script is mandatory.
Cheers,
Stefan
Permalink
Hey Stefan,
Would the script need to be run each time a CU is applied (say in October) or will once suffice?
Thanks again!
Permalink
Hi Daniel,
once should suffice.
Cheers,
Stefan
Permalink
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
Permalink
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
Permalink
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!
Permalink
Hi Daniel,
September CU is included in this fix.
Cheers,
Stefan
Permalink
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!
Permalink
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
Permalink
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.
Permalink
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
Permalink
Hi Darren,
to be honest – I don’t know.
My suggestion would be to test it and confirm back here.
Cheers,
Stefan
Permalink
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
Permalink
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
Permalink
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.
Permalink
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?
Permalink
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
Permalink
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
Permalink
Same happened to me at first, close and re-open your PowerShell session after installing the update before running the script.
Permalink
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.
Permalink
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,
Permalink
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
Permalink
Hi Chad,
afaik no KB article is planned for this fix.
Cheers,
Stefan
Permalink
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?
Permalink
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
Permalink
Thank you Stefan for your answer!!
Cheers,
/Micke
Permalink
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.
Permalink
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
Permalink
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
Permalink
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
Permalink
Have you also re-enabled the legacy workflows with:
Enable-SPLegacyWorkflow http://site-collection-url
Described in this post: https://blog.stefan-gossner.com/2026/08/14/are-you-using-sp2010-or-sp2013-workflows-in-your-sharepoint-farms-this-post-is-for-you/
Permalink
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
Permalink
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
Permalink
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,
Permalink
Hi Asay,
please check the ULS log for specific error messages. It seems you are running into a separate issue.
Cheers,
Stefan
Permalink
Workflow with Delay throwing error. Any suggestion please.
Permalink
Hi Prabhu,
please check the ULS log for specific errors and let us know what error you get.
Cheers,
Stefan
Permalink
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, Collection
1 events, TimeSpan timeOut) at Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow workflow, Collection1 events, SPWorkflowRunOptionsInternal runOptions) 5a6140a2-7c17-20e1-3f99-03168f1ef1be09/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
Permalink
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
Permalink
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”
…
Permalink
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
Permalink
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" />
Permalink
Perfect! Thanks for the follow up!
🙂
Permalink
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>, 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?
Permalink
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
Permalink
Check this one, it helped in our case
https://blog.stefan-gossner.com/2026/06/12/trending-issue-sharepoint-2010-workflows-fail-after-june-2026-cu/
Permalink
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>
Permalink
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.