Jira shows a 500 error code and displays the error message "The character encoding [XXXX] is not supported." when loading some pages
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles 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
Jira shows a 500 error code and displays the error message "The character encoding [XXXX] is not supported." when loading some pages:
Environment
Jira Data Center on any version from 9.0.0.
Diagnosis
Check the Jira application logs. If you can find the error below, this article is relevant:
2024-07-16 02:18:35,039-0500 http-nio-8080-exec-169 url: /internal-error ERROR - [c.a.j.web.servlet.InternalServerErrorServlet] {errorId=e9dd6999-6e5c-4798-b775-3098aa8c305d, interpretedMsg=, cause=java.io.UnsupportedEncodingException: The character encoding [desc] is not supported, stacktrace=java.io.UnsupportedEncodingException: The character encoding [desc] is not supported
at org.apache.tomcat.util.buf.B2CConverter.getCharset(B2CConverter.java:67) [tomcat-util.jar:9.0.88]
at org.apache.catalina.connector.Request.setCharacterEncoding(Request.java:1540) [catalina.jar:9.0.88]
at org.apache.catalina.connector.RequestFacade.setCharacterEncoding(RequestFacade.java:277) [catalina.jar:9.0.88]
at com.atlassian.core.filters.encoding.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:36) [atlassian-core-8.0.1.jar:?]
at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32) [atlassian-core-8.0.1.jar:?]
at com.atlassian.jira.web.filters.JiraStaticResourceAwareEncodingFilter.doFilterInternal(JiraStaticResourceAwareEncodingFilter.java:20) [classes/:?]
at com.atlassian.jira.web.filters.AbstractStaticResourceAwareFilter.doFilter(AbstractStaticResourceAwareFilter.java:59) [classes/:?]
at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32) [atlassian-core-8.0.1.jar:?]
at com.atlassian.jira.web.filters.PathMatchingEncodingFilter.doFilter(PathMatchingEncodingFilter.java:41) [classes/:?]
at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32) [atlassian-core-8.0.1.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169) [catalina.jar:9.0.88]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.88]
at com.atlassian.jira.web.filters.MultipartBoundaryCheckFilter.doFilter(MultipartBoundaryCheckFilter.java:36) [classes/:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169) [catalina.jar:9.0.88]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.88]
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25) [classes/:?]
at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32) [atlassian-core-8.0.1.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169) [catalina.jar:9.0.88]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.88]
at com.atlassian.jira.web.filters.steps.ChainedFilterStepRunner.doFilter(ChainedFilterStepRunner.java:74) [classes/:?]
at com.atlassian.jira.web.filters.JiraFirstFilter.doFilter(JiraFirstFilter.java:61) [classes/:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169) [catalina.jar:9.0.88]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.88]
at com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:121) [atlassian-gzipfilter-3.0.2.jar:?]
at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:92) [atlassian-gzipfilter-3.0.2.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169) [catalina.jar:9.0.88]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.88]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) [catalina.jar:9.0.88]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [catalina.jar:9.0.88]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) [catalina.jar:9.0.88]
at org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:185) [catalina.jar:9.0.88]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) [catalina.jar:9.0.88]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [catalina.jar:9.0.88]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [catalina.jar:9.0.88]
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670) [catalina.jar:9.0.88]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) [catalina.jar:9.0.88]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) [tomcat-coyote.jar:9.0.88]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-coyote.jar:9.0.88]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928) [tomcat-coyote.jar:9.0.88]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1786) [tomcat-coyote.jar:9.0.88]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-coyote.jar:9.0.88]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-util.jar:9.0.88]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.88]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) [tomcat-util.jar:9.0.88]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
, referer=Unknown, servletErrorMessage=}
Run the following SQL in database to check the configured encoding:
select pe.*, ps.* from propertyentry pe, propertystring ps where property_key ilike '%encoding%' and pe.id = ps.id;
In a typical scenario, the anticipated output would be as follows:
Expected configurationid | entity_name | entity_id | property_key | propertytype | id | propertyvalue ---------+-----------------+-----------+-----------------------+--------------+---------+--------------- 100002 | jira.properties | 1 | webwork.i18n.encoding | 5 | 100002 | UTF-8=
However, if you are facing the issue, the output of the above query would be:
Unexpected configurationid | entity_name | entity_id | property_key | propertytype | id | propertyvalue ---------+-----------------+-----------+-----------------------+--------------+---------+--------------- 100002 | jira.properties | 1 | webwork.i18n.encoding | 5 | 100002 | desc
Cause
Due to a database refresh or update in the database, an incorrect encoding has been set for the property webwork.i18n.encoding, causing Jira to be unable to load the pages.
Solution
Run the following query to correct the encoding value:
Update the database with following queryupdate propertystring set propertyvalue = 'UTF-8' where id = (select id from propertyentry where property_key = 'webwork.i18n.encoding')
Restart the environment to ensure data integrity and reflect the updated encoding value