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


Posted on : Fri, 2nd Oct 15 10:28 am (Updated on : Fri, 2nd Oct 15 10:28 am) UTC
Author : Code2care
2314 votes

Problem

You receive below error in SharePoint page containing DataForm web part with custom XSL applied, and also if your list contains 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

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()

Code2care's mission is to share varied knowledge in technical and non-technical areas gathered during day-to-day learnings and development activities so that our visitors can leverage this portal to find solutions to their queries without re-inventing the wheel. Technical posts include Learnings, Tutorials, Video Tutorials, Code Snippets, Tips-n-tricks.

Follow us : Facebook - Twitter - Google +