I've bound the PivotGrid to a XMLA-WebService (with Mondrian as Backend).
In the Datasource I've defined the error-Function.
When PivotGrid requests Data and Mondrian runs an Exception, following XMLA is transferred:
<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server.00HSBE02</faultcode>
<faultstring>XMLA Discover unparse results error</faultstring>
<faultactor>Mondrian</faultactor>
<detail>
<XA:error xmlns:XA="http://mondrian.sourceforge.net">
<code>00HSBE02</code>
<desc>The Mondrian XML: Error in executeQuery. Stackdump follows. See SQL logfile for more info. Error Stack Dump, time : 22.11.2018 13:19:16 com.microsoft.sqlserver.jdbc.SQLServerException: Die Sachbearbeiter-Spalte wurde für 'Beschluss' mehrmals angegeben. 	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteCursored(SQLServerStatement.java:1879) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:766) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) 	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) 	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) 	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616) 	at net.abit.base.support.StatementImpl.executeQuery(StatementImpl.java:504) 	at mondrian.rolap.SqlStatement.execute(SqlStatement.java:201) 	at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:350) 	at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:303) 	at mondrian.rolap.SqlMemberSource.getMemberCount(SqlMemberSource.java:149) 	at mondrian.rolap.SqlMemberSource.getLevelMemberCount(SqlMemberSource.java:142) 	at mondrian.rolap.SmartMemberReader.getLevelMemberCount(SmartMemberReader.java:158) 	at mondrian.rolap.RolapSchemaReader.getLevelCardinality(RolapSchemaReader.java:320) 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 	at java.lang.reflect.Method.invoke(Method.java:498) 	at mondrian.rolap.RolapUtil$2.invoke(RolapUtil.java:111) 	at com.sun.proxy.$Proxy33.getLevelCardinality(Unknown Source) 	at mondrian.olap4j.MondrianOlap4jExtra.getLevelCardinality(MondrianOlap4jExtra.java:74) 	at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateDimension(RowsetDefinition.java:3970) 	at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateCube(RowsetDefinition.java:3915) 	at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateCatalog(RowsetDefinition.java:3897) 	at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateImpl(RowsetDefinition.java:3885) 	at mondrian.xmla.Rowset.populate(Rowset.java:201) 	at mondrian.xmla.Rowset.unparse(Rowset.java:173) 	at mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2903) 	at mondrian.xmla.XmlaHandler.process(XmlaHandler.java:676) 	at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:517) 	at mondrian.xmla.XmlaServlet.doPost(XmlaServlet.java:318) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651) 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498) 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796) 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1374) 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 	at java.lang.Thread.run(Thread.java:748) </desc>
</XA:error>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
in Result the error-Parameter contains:
As you can see, the Details are missing. This wouldn't be worse - but additional xhr is away (null) - so manually parsing the result is impossible.
It should be possible to use message details - or having access to the complete Response (but xhr is not present).