Excel Tools Data Subset Export Returning HTTP 500

The download links in several reports in our production environment have started returning HTTP 500 errors when clicked. This seems to be occurring for all users and is not isolated to a single report.

The download link is driven by the Excel Tools data subset export. The related export process is completing successfully and I am not seeing any errors in the process, but when I look in the logs I see this whenever someone tries to use the link:

17:38:10,332 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 2017-08-15 17:38:10,332 [ajp-/0.0.0.0:8009-32] ERROR com.appiancorp.ap2.PortalResponse - Error: 500

17:38:43,719 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 2017-08-15 17:38:43,719 [ajp-/0.0.0.0:8009-32] ERROR com.appiancorp.ps.exceltools.servlet.ExportDataSubsetToExcelFromProcessServlet - Expected 898 but found 97

17:38:43,719 INFO  [stdout] (ajp-/0.0.0.0:8009-32) java.security.InvalidParameterException: Expected 898 but found 97

I am not sure how to decode these errors, so any help in this area would be appreciated.

  Discussion posts and replies are publicly visible

  • Is there any additional stacktrace available in the logs? That isn't a formally caught exception, so I can only take guesses where the service might be breaking.

    Can provide more information on the data you are storing into your ExportableDatasubset PV? Based on the Ids (898 and 97), my best guess is that value assigned to the datasubset attribute is a Dictionary or similar structure instead of type Datasubset.
  • When I hit the error myself, here is everything I see in the logs around the event:

    00:35:32,864 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 2017-08-18 00:35:32,864 [ajp-/0.0.0.0:8009-32] ERROR com.appiancorp.ps.exceltools.servlet.ExportDataSubsetToExcelFromProcessServlet - Expected 898 but found 97
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) java.security.InvalidParameterException: Expected 898 but found 97
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.plugins.typetransformer.AppianComplex.put(AppianComplex.java:42)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.plugins.typetransformer.AppianComplex.put(AppianComplex.java:19)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.plugins.typetransformer.AppianTypeFactory.createElement(AppianTypeFactory.java:416)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.plugins.typetransformer.AppianTypeFactory.toAppianElement(AppianTypeFactory.java:137)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ps.exceltools.util.ExcelHelperUtils.convertDataToExcel(ExcelHelperUtils.java:104)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ps.exceltools.servlet.ExportDataSubsetToExcelFromProcessServlet.doGet(ExportDataSubsetToExcelFromProcessServlet.java:99)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.DelegatingPluginServlet.service(DelegatingPluginServlet.java:42)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.ServletModuleContainerServlet.service(ServletModuleContainerServlet.java:52)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.EntryFilter.doFilter(EntryFilter.java:40)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.PageFilter.doFilter(PageFilter.java:363)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.sail.SailRequestMetadataFilter.doFilter(SailRequestMetadataFilter.java:62)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.WrapFilter.doFilterInternal(WrapFilter.java:63)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.PathMatchExclusionFilter.doFilter(PathMatchExclusionFilter.java:70)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.web.FrameOptionsFilter.doFilter(FrameOptionsFilter.java:28)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.ForceSetPasswordFilter.doFilter(ForceSetPasswordFilter.java:47)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.AuthenticationStatusHeaderFilter.doFilter(AuthenticationStatusHeaderFilter.java:38)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.csp.CspFilter.doFilter(CspFilter.java:50)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.activity.UserActivityFilter.doFilter(UserActivityFilter.java:46)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.rememberme.CookieTheftRedirectFilter.doFilter(CookieTheftRedirectFilter.java:37)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:157)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:152)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.csrf.CsrfChannelProcessingFilter.callSuperDoFilter(CsrfChannelProcessingFilter.java:106)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.csrf.CsrfChannelProcessingFilter.doFilter(CsrfChannelProcessingFilter.java:92)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.HttpMethodOverrideFilter.doFilter(HttpMethodOverrideFilter.java:34)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.cors.CorsFilter.doFilter(CorsFilter.java:241)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.cors.CorsFilter.doFilter(CorsFilter.java:216)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.logging.AuthenticationLoggingFilter.doFilter(AuthenticationLoggingFilter.java:37)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.UserAgentFilter.doFilter(UserAgentFilter.java:65)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.environment.EnvironmentFilter.doFilter(EnvironmentFilter.java:87)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.ThreadLocalRequestFilter.doFilter(ThreadLocalRequestFilter.java:34)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.WeblogicSessionAttributeClassLoaderRequestFilter.doFilter(WeblogicSessionAttributeClassLoaderRequestFilter.java:258)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.NullByteInjectionFilter.doFilter(NullByteInjectionFilter.java:32)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.EncodingFilter.doFilter(EncodingFilter.java:58)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:559)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:490)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:422)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at java.lang.Thread.run(Thread.java:748)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 2017-08-18 00:35:32,868 [ajp-/0.0.0.0:8009-32] ERROR com.appiancorp.ap2.PortalResponse - Error: 500

    In terms of the data that is being stored into the PV, the data comes from an expression that runs a queryEntity with filters based on text decoded from JSON fed in the through the Text parameter in the process. I've tested it separately and it is correctly providing output of type Datasubset. Wouldn't a datatype mismatch cause the process to fail anyways?

  • 0
    Appian Employee
    in reply to Kyle Jorgensen

    Thanks for the stacktrace, this provides some good leads. The code is capturing all exceptions in this block of code, so your process will complete rather than "red X".

    Based on the lines in the trace, the code is failing while try to read in the exportData PV, but prior to actually converting the data to excel and passing back to the user.

    Rewording your post, I'm interpreting that you have:
    1) In your UI, generating a URL that calls the servlet, appending json encoded filter data
    2) The process model decodes that json input, giving you raw filters
    3) You are running a queryEntity based on those filters
    4) The queryEntity provides a datasubset output

    My outstanding questions: What is the datatype of your exportData PV? This PV should be a CDT of type ExportableDatasubset, and the definition of it should be (psuedo-coding):

      'type!{urn:com:appian:ps:excel:types}ExportableDataSubset'(
        fieldNames: {"name1","name2"...},
        fieldLabels: {"label1","label2"...},
        datasubset: <your queryEntity result - type should be DataSubset>,
        fileName: "your file name"
      )

    Can you confirm you have your process set up in this way? Attaching an example.

  • The exportData PV is of type ExportableDataSubset:

    A script task node defines the an activity class parameter which is subsequently saved to the PV. The node defines exportData as the following:

    fieldNames: cons!PD_STATUS_REPORT_EXPORT_FIELD_NAMES

    fieldLabels: cons!PD_STATUS_REPORT_EXPORT_FIELD_LABELS

    dataSubset: rule!PD_compileStatusReportExport(pv!pagingInfo,pv!input)

    fileName: "opportunity-status-report_" & rule!UIT_toIsoDate(now())

    fieldNames and fieldLabels are filled with constants which are both text arrays. PD_compileStatusReportExport() is below:

    rule!PD_getOpportunitiesForStatusReport(
      logicalExpression: a!queryLogicalExpression(
        operator: "AND",
        logicalExpressions: {
          if(
            and(
              rule!APN_isBlank(a!fromJson(ri!input).filterOpportunityID),
              rule!APN_isBlank(a!fromJson(ri!input).filterFID),
              rule!APN_isBlank(a!fromJson(ri!input).filterName),
              rule!APN_isBlank(a!fromJson(ri!input).filterManagementRegion),
              rule!APN_isBlank(a!fromJson(ri!input).filterGeographicRegion),
              rule!APN_isBlank(a!fromJson(ri!input).filterAccount),
              rule!APN_isBlank(a!fromJson(ri!input).filterCustomer),
              rule!APN_isBlank(a!fromJson(ri!input).filterFabSegment),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectType),
              rule!APN_isBlank(a!fromJson(ri!input).filterReportingType),
              rule!APN_isBlank(a!fromJson(ri!input).filterCorporateLevel),
              rule!APN_isBlank(a!fromJson(ri!input).filterCompetitor),
              rule!APN_isBlank(a!fromJson(ri!input).filterStrategicRelevance),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductGroupOwner),
              rule!APN_isBlank(a!fromJson(ri!input).filterAccountTeamOwner),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectStage),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectStatus),
              rule!APN_isBlank(a!fromJson(ri!input).filterAlignmentStatus),
              rule!APN_isBlank(a!fromJson(ri!input).filterDecisionQuarter),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductGroup),
              rule!APN_isBlank(a!fromJson(ri!input).filterBusinessUnit),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductLine),
              rule!APN_isBlank(a!fromJson(ri!input).filterTargetTool),
              rule!APN_isBlank(a!fromJson(ri!input).filterNode),
              rule!APN_isBlank(a!fromJson(ri!input).filterPGPriority),
              rule!APN_isBlank(a!fromJson(ri!input).filterATPriority),
              rule!APN_isBlank(a!fromJson(ri!input).filterPGTargetBudget),
              rule!APN_isBlank(a!fromJson(ri!input).filterATTargetBudget)
            ),
            {},
            a!queryLogicalExpression(
              operator: "AND",
              filters: {
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterOpportunityID),
                  null,
                  a!queryFilter(
                    field:"opportunityId",
                    operator:"in",
                    value: a!fromJson(ri!input).filterOpportunityID
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterFID),
                  null,
                  a!queryFilter(
                    field:"forecastId",
                    operator:"in",
                    value: a!fromJson(ri!input).filterFID
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterName),
                  null,
                  a!queryFilter(
                    field:"applicationName",
                    operator:"in",
                    value: a!fromJson(ri!input).filterName
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterManagementRegion),
                  null,
                  a!queryFilter(
                    field:"managementRegion",
                    operator:"=",
                    value: a!fromJson(ri!input).filterManagementRegion
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterGeographicRegion),
                  null,
                  a!queryFilter(
                    field:"geoRegion",
                    operator:"=",
                    value: a!fromJson(ri!input).filterGeographicRegion
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAccount),
                  null,
                  a!queryFilter(
                    field:"account",
                    operator:"=",
                    value: a!fromJson(ri!input).filterAccount
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCustomer),
                  null,
                  a!queryFilter(
                    field:"customer",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCustomer
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterFabSegment),
                  null,
                  a!queryFilter(
                    field:"fabSegment",
                    operator:"=",
                    value: a!fromJson(ri!input).filterFabSegment
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectType),
                  null,
                  a!queryFilter(
                    field:"projectType",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectType
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterReportingType),
                  null,
                  a!queryFilter(
                    field:"reportingType",
                    operator:"=",
                    value: a!fromJson(ri!input).filterReportingType
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCorporateLevel),
                  null,
                  a!queryFilter(
                    field:"corporateLevel",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCorporateLevel
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCompetitor),
                  null,
                  a!queryFilter(
                    field:"competitor",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCompetitor
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterStrategicRelevance),
                  null,
                  a!queryFilter(
                    field:"strategicRelevance",
                    operator:"=",
                    value: a!fromJson(ri!input).filterStrategicRelevance
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductGroupOwner),
                  null,
                  a!queryFilter(
                    field:"productGroupOwner",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductGroupOwner
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAccountTeamOwner),
                  null,
                  a!queryFilter(
                    field:"accountTeamOwner",
                    operator:"in",
                    value: a!fromJson(ri!input).filterAccountTeamOwner
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectStage),
                  null,
                  a!queryFilter(
                    field:"projectStage",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectStage
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectStatus),
                  null,
                  a!queryFilter(
                    field:"projectStatus",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectStatus
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAlignmentStatus),
                  null,
                  a!queryFilter(
                    field:"alignmentStatus",
                    operator:"=",
                    value: a!fromJson(ri!input).filterAlignmentStatus
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterDecisionQuarter),
                  null,
                  a!queryFilter(
                    field:"decisionQuarter",
                    operator:"in",
                    value: a!fromJson(ri!input).filterDecisionQuarter
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductGroup),
                  null,
                  a!queryFilter(
                    field:"productGroup",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductGroup
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterBusinessUnit),
                  null,
                  a!queryFilter(
                    field:"businessUnit",
                    operator:"=",
                    value: a!fromJson(ri!input).filterBusinessUnit
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductLine),
                  null,
                  a!queryFilter(
                    field:"productLine",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductLine
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterTargetTool),
                  null,
                  a!queryFilter(
                    field:"targetTool",
                    operator:"=",
                    value: a!fromJson(ri!input).filterTargetTool
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterNode),
                  null,
                  a!queryFilter(
                    field:"node",
                    operator:"=",
                    value: a!fromJson(ri!input).filterNode
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterPGPriority),
                  null,
                  a!queryFilter(
                    field:"pgPriority",
                    operator:"=",
                    value: a!fromJson(ri!input).filterPGPriority
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterATPriority),
                  null,
                  a!queryFilter(
                    field:"atPriority",
                    operator:"=",
                    value: a!fromJson(ri!input).filterATPriority
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterPGTargetBudget),
                  null,
                  a!queryFilter(
                    field:"pgTargetBudget",
                    operator:"=",
                    value: a!fromJson(ri!input).filterPGTargetBudget
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterATTargetBudget),
                  null,
                  a!queryFilter(
                    field:"atTargetBudget",
                    operator:"=",
                    value: a!fromJson(ri!input).filterATTargetBudget
                  )
                )
              }
            )
          ),
          if(
            rule!APN_isBlank(a!fromJson(ri!input).filterFab),
            {},
            a!queryLogicalExpression(
              operator: "OR",
              filters: {
                a!applyComponents(
                  a!queryFilter(
                    field: "customerFab",
                    operator: "includes",
                    value: _
                  ),
                  a!fromJson(ri!input).filterFab
                )
              }
            )
          ),
          rule!PD_getUserAccessLogicalExpression(a!fromJson(ri!input).user)
        }
      ),
      selection: a!querySelection(
        columns: {
          a!queryColumn(field: "opportunityId", alias: "opportunityId", visible: true()),
          a!queryColumn(field: "projectType", alias: "projectType", visible: true()),
          a!queryColumn(field: "projectAndAlignmentStatus", alias: "projectAndAlignmentStatus", visible: true()),
          a!queryColumn(field: "applicationName", alias: "applicationName", visible: true()),
          a!queryColumn(field: "corpReportingType", alias: "corpReportingType", visible: true()),
          a!queryColumn(field: "node", alias: "node", visible: true()),
          a!queryColumn(field: "customer", alias: "customer", visible: true()),
          a!queryColumn(field: "relevantDivision", alias: "relevantDivision", visible: true()),
          a!queryColumn(field: "strategicRelevance", alias: "strategicRelevance", visible: true()),
          a!queryColumn(field: "threeYearRevenue", alias: "threeYearRevenue", visible: true()),
          a!queryColumn(field: "pgPriority", alias: "pgPriority", visible: true()),
          a!queryColumn(field: "atPriority", alias: "atPriority", visible: true()),
          a!queryColumn(field: "decisionQuarter", alias: "decisionQuarter", visible: true()),
          a!queryColumn(field: "modifiedBy", alias: "modifiedBy", visible: true()),
          a!queryColumn(field: "modifiedDate", alias: "modifiedDate", visible: true()),
          a!queryColumn(field: "forecastId", alias: "forecastId", visible: false()),
          a!queryColumn(field: "managementRegion", alias: "managementRegion", visible: false()),
          a!queryColumn(field: "geoRegion", alias: "geoRegion", visible: false()),
          a!queryColumn(field: "geoRegionGroupIds", alias: "geoRegionGroupIds", visible: false()),
          a!queryColumn(field: "account", alias: "account", visible: false()),
          a!queryColumn(field: "accountId", alias: "accountId", visible: false()),
          a!queryColumn(field: "customerFab", alias: "customerFab", visible: false()),
          a!queryColumn(field: "fabSegment", alias: "fabSegment", visible: false()),
          a!queryColumn(field: "reportingType", alias: "reportingType", visible: false()),
          a!queryColumn(field: "corporateLevel", alias: "corporateLevel", visible: false()),
          a!queryColumn(field: "competitor", alias: "competitor", visible: false()),
          a!queryColumn(field: "productGroupOwner", alias: "productGroupOwner", visible: false()),
          a!queryColumn(field: "accountTeamOwner", alias: "accountTeamOwner", visible: false()),
          a!queryColumn(field: "projectStage", alias: "projectStage", visible: false()),
          a!queryColumn(field: "projectStatus", alias: "projectStatus", visible: false()),
          a!queryColumn(field: "alignmentStatus", alias: "alignmentStatus", visible: false()),
          a!queryColumn(field: "productGroup", alias: "productGroup", visible: false()),
          a!queryColumn(field: "businessUnit", alias: "businessUnit", visible: false()),
          a!queryColumn(field: "productLine", alias: "productLine", visible: false()),
          a!queryColumn(field: "targetTool", alias: "targetTool", visible: false()),
          a!queryColumn(field: "pgTargetBudget", alias: "pgTargetBudget", visible: false()),
          a!queryColumn(field: "atTargetBudget", alias: "atTargetBudget", visible: false()),
          a!queryColumn(field: "oneYearRevenue", alias: "oneYearRevenue", visible: false())
        }
      ),
      pagingInfo: ri!pagingInfo
    )

    PD_getOpportunitiesForStatusReport() contains a queryEntity and is used by many reports and processes. I've confirmed that both PD_compileStatusReportExport() and PD_getOpportunitiesForStatusReport() both work.

    None of these objects have changed recently either, they were working for a few months before this error popped up.

  • AFAIK Please find below checklist
    1. rule!PD_compileStatusReportExport(pv!pagingInfo,pv!input) return Proper DataSubset or not .If it is return DataSubSet please check number of records are same in DataSubset and Exportable DataSubset .
    2.Please Check the cons!PD_STATUS_REPORT_EXPORT_FIELD_NAMES and DataSubSet field names
    3.Check with one by one field name in exportableDataSuset then we will come to know what exactly the issue[issue with which field]
    4.Check the security of the process model.
  • 1. The rule is returning a DataSubset and the amount of records match
    2. The field names defined in the constant match the datasubset field names exactly
    3. There doesn't seem to be any mismatch with field names, and the field names haven't changed since before the download was working
    4. The security of the export process model has the All P&D users group set to "Editor"
  • +1
    Certified Lead Developer
    This Problem will occur only for the Developer who were using "Getdatasubsetdownloadlinkfromprocess" function from older plugin which is "com.appiancorp.ps.plugins.downloaddatasubsetfromprocess-1.2.1".
    As Appian has deprecated the this one and enabled excel tools having all functionality where as kept the function name as same as earlier. It starts failing.
    It is failing as both of the plugins have CDT name as "ExportableDataSubset" where as Name Space is different. for exceltools it is {urn:com:appian:ps:excel:types}ExportableDataSubset and downloaddatasubset it is {urn:appian:plugin:datasubsetdownload:types}ExportableDataSubset.

    If Developer is migrating from downloaddatasubsetprocess to excel tool make sure that you remap the correct CDT in process and Expression to get rid of this error.
  • Hi Kyle, i am facing the similar issue here. Have you found the solution ?? could you please share ?
  • Hi,

    You have to take the field name same as you have in the cdt of which data is exporting. So please make sure to check the field names
  • This might happen if ExportableDataSet is not getting a datasubset as its input. This can happen for instances such as when the filters applied on the query entity makes it return empty dataset. Then in such cases, you have to create a structure of the datasubset like todatasubset(type!CDT(field1: null, field2: null), a!pagingInfo) and then pass it to Exportabledatasubset. Usually the 500 response error happens for such cases where either the datasubset is not returned properly or one of the field names is not there.