Jira server throws 500 error page when logging in or visiting dashboards

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the server and data center platforms.

Problem

When attempting to log in a user sees a message "ERROR OCCURRED" or a page saying there is a 500 error. The 500 error page and JIRA logs show In 'print' tag, expression "$dashboardTitle" evaluates to undefined. 

  • This error may also show if the user is logged in and navigates to the dashboard.

The full error may vary. The followings are examples of how this error may appear:


2017-10-10 17:02:15,346 http-nio-8080-exec-22 ERROR user 1022x72x1 nzdy6m 172.26.101.158,127.0.0.1 /secure/Dashboard.jspa [c.a.j.web.servlet.InternalServerErrorServlet] {errorId=7a2145ee-058a-4a60-8736-1f785b5228ee, interpretedMsg=, cause=com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$dashboardTitle" evaluates to undefined., stacktrace=com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$dashboardTitle" evaluates to undefined....
2016-12-07 07:26:57,779 http-nio-8080-exec-22 ERROR user 446x4928x1 f7vyfp 0.0.0.0 / [[Catalina].[localhost].[/].[action]] Servlet.service() for servlet action threw exception
com.google.template.soy.sharedpasses.render.RenderException: In 'print' tag, expression "$dashboardTitle" evaluates to undefined.
    at JIRA.Dashboard.page.dashboard(dashboard.soy:12) [?:?]
...
2016-12-07 07:26:58,754 http-nio-8080-exec-22 ERROR user 446x4928x1 f7vyfp 0.0.0.0 / [jira.web.filters.CommittedResponseHtmlErrorRecoveryFilter] Exception occurred after HTTP response was already committed: javax.servlet.ServletException: java.lang.RuntimeException: com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$dashboardTitle" evaluates to undefined.
...
2016-12-07 07:26:58,108 http-nio-8080-exec-22 ERROR user 446x4928x1 f7vyfp 0.0.0.0 / [ContainerBase.[Catalina].[localhost].[/]] Unhandled exception occurred whilst decorating page
java.lang.RuntimeException: javax.servlet.ServletException: java.lang.RuntimeException: com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$dashboardTitle" evaluates to undefined.
    at com.atlassian.web.servlet.plugin.DynamicAuthorizationServletForwarder.forward(DynamicAuthorizationServletForwarder.java:55) [?:?]
    at com.atlassian.web.servlet.plugin.SanitizingServletForwarder.forward(SanitizingServletForwarder.java:32) [?:?]
    at com.atlassian.web.servlet.plugin.RememberingServletForwarder.forward(RememberingServletForwarder.java:51) [?:?]
    at com.atlassian.web.servlet.plugin.ResolvingServletForwarder.forward(ResolvingServletForwarder.java:38) [?:?]
...
Caused by: javax.servlet.ServletException: java.lang.RuntimeException: com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$dashboardTitle" evaluates to undefined.
    at com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher.onActionException(JiraWebworkActionDispatcher.java:220) [classes/:?]
    at com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher.service(JiraWebworkActionDispatcher.java:172) [classes/:?]
...
Caused by: com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$dashboardTitle" evaluates to undefined.
    at JIRA.Dashboard.page.dashboard(dashboard.soy:12) [?:?]
    at com.google.template.soy.tofu.internal.BaseTofu.renderMainHelper(BaseTofu.java:369) [?:?]
    at com.google.template.soy.tofu.internal.BaseTofu.renderMain(BaseTofu.java:322) [?:?]
    at com.google.template.soy.tofu.internal.BaseTofu.access$100(BaseTofu.java:66) [?:?]
    at com.google.template.soy.tofu.internal.BaseTofu$RendererImpl.render(BaseTofu.java:476) [?:?]
    at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:45) [?:?]
    at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:39) [?:?]
...

Cause

There're a few possible causes:

  1. The affected user has access to multiple dashboards with the same name and the same owner.
    • Note: The affected user does not need to be the owner of the dashboard(s). For example, the affected user may have them as part of their favorites.
  2. There's a corrupted application link.
  3. Base URL healthcheck fails due to SSL certificate using SAN (applicable in JIRA 7.4 and above).
  4. (Extra) You may also check this similar KB: Unable to Load Jira Dashboard seeing an HTTP 500 error when using F5 BigIP as a reverse proxy.
  5. (Extra) The problem is happening on Jira Data Center with 2 nodes or more, and there is a symlink configured in each node pointing from the Jira home folder to the Jira shared folder, as explained in Error 500 when loading various Jira page(s) and JVM crashes

Diagnosis

  1. For Cause 1, use the following SQL query to identify if there are multiple dashboards with the same name:

    SELECT * FROM portalpage WHERE pagename IN (SELECT pagename FROM portalpage GROUP BY pagename HAVING COUNT(pagename) > 1); 

    If 1 or more results are returned then you are impacted by this problem. If not, please check the below.

  2. For Cause 2, do the following:

    1. Go to the Application Links page.
    2. Check the status of the application links as well as if any of them is not in use.

    If all application links are good, check the below.

  3. For Cause 3, this error is thrown in the logs:

    2017-10-10 17:04:06,623 HealthCheck:thread-5 ERROR ServiceRunner     [c.a.t.j.healthcheck.support.BaseUrlHealthCheck] An error occurred when performing the Base URL healthcheck: 
    java.lang.ClassCastException: [B cannot be cast to java.lang.String
    	at org.apache.http.conn.ssl.DefaultHostnameVerifier.getSubjectAltNames(DefaultHostnameVerifier.java:309)

Resolution

For Cause 1

The fix is to make it so that there are no longer duplicate dashboard names under a single owner. It should be safe to have dashboards with duplicate names as long as the dashboards are not owned by the same user.

(warning) Please do not attempt to modify this in the database.

  1. Use the diagnosis query to determine the owner of the problem-causing dashboards.
  2. The user will need to log into JIRA and then go to the following URL. This URL will be accessible even if the user encounters an error when logging in.
    1. BASE_URL/secure/ConfigurePortalPages!default.jspa
  3. Edit one of the dashboards that have duplicate names. Change the name so that there is no longer a duplicate.

For Cause 2

  1. Delete the unused application links. Mind the duplicated entries
  2. For the other applinks, if there is a warning/error and you observe that the connection is not working, we would suggest removing the corresponding application links and testing if the dashboard can be accessed properly.

For Cause 3

There're only workarounds for this cause:

  • Temporarily use an SSL certificate that doesn't use SAN
  • Temporarily run JIRA over HTTP

Please watch  JRASERVER-65595 - Getting issue details... STATUS  for a permanent fix.

DescriptionWhen attempting to log in a user sees a message "ERROR OCCURRED" or a page saying there is a 500 error. The 500 error page and JIRA logs show In 'print' tag, expression "$dashboardTitle" evaluates to undefined. 
ProductJira
PlatformServer
Last modified on Aug 16, 2021

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.