Broken URL in Notification Containing Plugins/Servlet/Undefined
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
Symptoms
URLs in the Notification box take you to a "page not found" page but the URLs work if you remove plugins/servlet/undefined for example:
Wrong URL: http://company.com/confluence/plugins/servlet/undefined/display/SPACE/page
Correct URL: http://company.com/confluence/display/SPACE/page
The <Confluence Home>/logs/atlassian-confluence.log will contain a message similar to the following:
Caused by: java.sql.SQLException: Incorrect string value: '\xE7\xB2\x89\xE4\xB8\x9D...' for column 'BODY' at row 1
Diagnosis
Run the following query to check the database collation. If latin1 is returned, the collation will need to be changed.
SELECT TABLE_SCHEMA,
TABLE_NAME,
CCSA.CHARACTER_SET_NAME AS DEFAULT_CHAR_SET,
COLUMN_NAME,
COLUMN_TYPE,
C.CHARACTER_SET_NAME, ENGINE
FROM information_schema.TABLES AS T
JOIN information_schema.COLUMNS AS C USING (TABLE_SCHEMA, TABLE_NAME)
JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY AS CCSA
ON (T.TABLE_COLLATION = CCSA.COLLATION_NAME)
WHERE TABLE_SCHEMA=SCHEMA()
AND C.DATA_TYPE IN ('enum', 'varchar', 'char', 'text', 'mediumtext', 'longtext')
ORDER BY TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME;
Cause
Latin1 collation does not support some special characters like emoji.
Resolution
Use native database tools to convert the database to utf8_bin collation.