How to Fix Error 500 When Editing Issue Types to Update Icons in Jira

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

Certain issue types are missing the icons. Editing them from the UI gives the error 500.

Diagnosis

Diagnostic Steps

This type of error usually happens because of missing or incorrect data from the database or inside the Avatar's folder.

In order to check the data, collect:

1. Identify which is the avatar used by this Issue type, running the query:

SELECT * FROM issuetype;

The query will return multiple rows. In our sample, the missed icons are for Issue type "Service Request" (id=10301) and "Problem" (id=10300):

id

sequence

pname

pstyle

description

iconurl

avatar

10301

Service Request

Created by Jira Service Desk.

10304

Problem

Track underlying causes of incidents. Created by Jira Service Desk.

11704

10300

Incident

For system outages or incidents. Created by Jira Service Desk.

10215

Risk/Concern

Risk and issues/concerns

/secure/viewavatar?size=xsmall&avatarId=10300&avatarType=issuetype

10308

Where:

"id" is the issue type id

"avatar" is the avatar id

2. Check if there is an avatar saved for this issuetype, running the query:

select * from avatar where avatartype = 'issuetype';

The query will return multiple rows. Observe if there is any row for the owner 10301 (Service Request) or 10300 (Problem):

id

filename

contenttype

avatartype

owner

systemavatar

11704

xxxxx.png

image/png

issuetype

10304

0

Where :

"id" is the avatar id

"owner" is the issuetype id

3. Check if the file mentioned at the column "filename" exists in the avatar's directory Jira Server: <Jira home directory>/data/avatars Jira Data Center: <Shared home directory>/data/avatars

Cause

Relevant stack trace:

2021-06-02 16:59:59,709-0700 http-nio-8080-exec-1 ERROR xxxxx 1019x4833664x1 /secure/admin/EditIssueType!default.jspa [o.a.c.c.C.[Catalina].[localhost].[/]] Unhandled exception occurred whilst decorating page com.google.template.soy.tofu.SoyTofuException: When evaluating "$issueType.iconUrlContent": Failed to invoke accessor getIconUrlContent on instance of class com.atlassian.jira.web.action.admin.issuetypes.EditIssueType$IssueTypeViewData at JIRA.Templates.IssueType.form(issueType.soy:78) at JIRA.Templates.IssueType.editIssueType(issueType.soy:25) 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.DefaultSoyManager.render(DefaultSoyManager.java:154) at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:45) at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:39) ... 5 filtered at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ... 48 filtered at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55) ... 4 filtered at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:56) ... 7 filtered at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:59) ... 4 filtered at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54) ... 3 filtered at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55) ... 8 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 48 filtered at com.bigbrassband.jira.git.action.GitThreadCacheDestroyFilter.doFilter(GitThreadCacheDestroyFilter.java:35) ... 3 filtered at com.atlassian.plugins.slack.analytics.SlackAnalyticsFilter.doFilter(SlackAnalyticsFilter.java:35) ... 3 filtered at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46) ... 21 filtered at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66) ... 1 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64) ... 39 filtered at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30) ... 5 filtered at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:215) at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136) at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89) at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:206) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:134) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:123) ... 4 filtered at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37) ... 8 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 4 filtered at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46) ... 3 filtered at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36) ... 29 filtered at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25) ... 25 filtered 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) Caused by: com.google.template.soy.sharedpasses.render.RenderException: When evaluating "$issueType.iconUrlContent": Failed to invoke accessor getIconUrlContent on instance of class com.atlassian.jira.web.action.admin.issuetypes.EditIssueType$IssueTypeViewData

Solution

Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.

  • Stop Jira;

  • Backup your Database;

  • From the previous query, select one icon to be used as a temporary icon, for instance, the iconurl used by the "Risk/Concern" issue type ('/secure/viewavatar?size=xsmall&avatarId=10300&avatarType=issuetype');

  • Run these UPDATE statements to assign an icon URL to the affected issue types (in our sample, 10301 (Service Request) and 10300 (Problem):

    UPDATE issuetype SET iconurl= '/secure/viewavatar?size=xsmall&avatarId=10300&avatarType=issuetype' WHERE id='10300'; UPDATE issuetype SET iconurl= '/secure/viewavatar?size=xsmall&avatarId=10300&avatarType=issuetype' WHERE id='10301';

  • Start Jira;

  • Navigate to Issues > Issue Types;

  • Click on Edit in any of the affected issues;

  • Select another icon for the Issue Type or browse to find another image.

Updated on June 25, 2025

Still need help?

The Atlassian Community is here for you.