SharePoint 2010 DataForm Unable to display this Web Part System.StackOverflowException


Problem

You receive below error in SharePoint page containing DataForm web part with custom XSL applied, and also if your list contains a large number of columns.

Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator.

Correlation ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Troubleshooting

Based on the Correlation ID, search the SharePoint ULS Logs to find more information and error related to this message.

Tip - Use the Merge-SPLogFile PowerShell command (SharePoint Management Shell - Run as Administrator) to get relative logs.

By digging into the logs, we get this useful error/exception - System.StackOverflowException
Error while executing web part: System.StackOverflowException: Operation caused a stack overflow.
 at Microsoft.Xslt.NativeMethod.CheckForSufficientStack()
 at (XmlQueryRuntime , XPathNavigator )
 at (XmlQueryRuntime , IList`1 )
 at (XmlQueryRuntime , XPathNavigator )
 at (XmlQueryRuntime , XPathNavigator , IList`1 , IList`1 )
 at Root(XmlQueryRuntime )
 at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer, Boolean closeWriter)
 at System.Xml.Xsl.XmlILCommand.Execute(IXPathNavigable contextDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter results)
 at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results)
 at Microsoft.SharePoint.WebPartPages.DataFormWebPart.ExecuteTransform(XslCompiledTransform xslCompiledTransform, XsltArgumentList xmlArguments, Boolean bDeferExecuteTransform)
 at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)
Reason for Error

Firstly, this is a known issue and a SharePoint 2010 limitation (KB 2639184 - https://support.microsoft.com/en-us/kb/2639184). Secondly, there is a Hotfix (Cumulative Update) to fix this.

This happens because the time allowed for doing the XSL transformation is exceeded and goes over 1 second (default SharePoint is 1 second).

If you create a page from SharePoint Designer which includes much of XSLT, the page will take more time to open. If the page takes more than than a second to open and load, you may come across this error.

Suggestions

> Solutions provided here should work - https://support.microsoft.com/en-us/kb/2639184

> Another KB which describes similar issue - https://support.microsoft.com/en-us/kb/2597136

Resolution

You need to execute below PowerShell command in SharePoint FARM from your SharePoint Server to change and increase the XsltTransformTimeOut value (default is 1 second)

Open SharePoint 2010 Management Shell 'run as administrator'

$spFarm = Get-SPFarm 
$spFarm.XsltTransformTimeOut = [NEW INTEGER VALUE]
$spFarm.Update()
Example:
$spFarm = Get-SPFarm 
$spFarm.XsltTransformTimeOut = 10
$spFarm.Update()





Recent Posts:
Hello there!,

You are using AdBlocker!

I am an independent developer trying to help fellow developers and students to resolve issues faced on a day-to-day basis, we 'Code to Care' . There is a lot of expenses involved in hosting and managing a website that's the reason we have ads.

A humble request to you to disable adBlocker on Code2care.org and support us pay our bills.

Thanks,
Cod2ecare - Line's of code for change.

To see contents reload page after unblocking
Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and Software Developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include Learnings, Video Tutorials, Code Snippets, How Tos, Blogs, Articles, etc.