After upgrading Service Management, seeing error "Customer notifications missing"
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
Problem
After performing an upgrade to Jira Service Management, seeing this error in UI:

Attempting to restore email rules doesn't work and causes the following to appear in atlassian-jira.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
2017-03-02 16:43:54,042 http-nio-8880-exec-4 ERROR xxxxxx 1003x1370x1 xxxxxx x.x.x.x,x.x.x.x /rest/servicedesk/notifications/1/misconfiguration/EXAMPLE/fix [c.a.p.r.c.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: Failed to insert rule component configuration data
com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.RuleSetDaoException: Failed to insert rule component configuration data
at com.atlassian.servicedesk.plugins.automation.internal.configuration.common.dao.QueryDslDaoHelper.executeWithExceptionMessage(QueryDslDaoHelper.java:55)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.common.dao.QueryDslDaoHelper.executeExpectingNRowUpdates(QueryDslDaoHelper.java:65)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.ConfigDataDao.create(ConfigDataDao.java:35)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.ThenActionConfigDao.create(ThenActionConfigDao.java:53)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.IfThenDao.insertThenActionConfigs(IfThenDao.java:93)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.IfThenDao.create(IfThenDao.java:57)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.RuleDao.insertIfThens(RuleDao.java:89)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.RuleDao.create(RuleDao.java:58)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.RuleSetRevisionDao.insertRules(RuleSetRevisionDao.java:126)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.RuleSetRevisionDao.create(RuleSetRevisionDao.java:76)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.RuleSetDaoImpl.insertRuleSetRevisionAndUpdateActiveRevisionId(RuleSetDaoImpl.java:139)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.RuleSetDaoImpl.lambda$create$0(RuleSetDaoImpl.java:84)
at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:68)
at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:91)
at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor$1.execute(DefaultTransactionalExecutor.java:45)
at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.lambda$borrowConnectionAndExecute$0(JiraHostConnectionAccessor.java:62)
at com.atlassian.jira.database.DatabaseAccessorImpl.executeQuery(DatabaseAccessorImpl.java:67)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at com.sun.proxy.$Proxy146.executeQuery(Unknown Source)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:136)
at com.sun.proxy.$Proxy146.executeQuery(Unknown Source)
at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.borrowConnectionAndExecute(JiraHostConnectionAccessor.java:50)
at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.execute(JiraHostConnectionAccessor.java:40)
at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:42)
at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.execute(DatabaseAccessorImpl.java:66)
at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.runInTransaction(DatabaseAccessorImpl.java:42)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.dao.querydsl.RuleSetDaoImpl.create(RuleSetDaoImpl.java:79)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.RuleSetManagerImpl.create(RuleSetManagerImpl.java:89)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.RuleSetServiceImpl.create(RuleSetServiceImpl.java:89)
... 3 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy3344.create(Unknown Source)
at com.atlassian.servicedesk.plugins.notifications.internal.bootstrap.upgrade.task.NotificationDefaultRuleManager.lambda$createSystemRule$1(NotificationDefaultRuleManager.java:56)
at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870)
at io.atlassian.fugue.Either.flatMap(Either.java:230)
at com.atlassian.servicedesk.plugins.notifications.internal.bootstrap.upgrade.task.NotificationDefaultRuleManager.createSystemRule(NotificationDefaultRuleManager.java:56)
at com.atlassian.servicedesk.plugins.notifications.internal.defaultrules.migration.NotificationDefaultRuleGenerator.createRulesFromDescriptorList(NotificationDefaultRuleGenerator.java:70)
at com.atlassian.servicedesk.plugins.notifications.internal.defaultrules.migration.NotificationDefaultRuleGenerator.lambda$createMissingRules$0(NotificationDefaultRuleGenerator.java:50)
at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870)
at io.atlassian.fugue.Either.flatMap(Either.java:230)
at com.atlassian.servicedesk.plugins.notifications.internal.defaultrules.migration.NotificationDefaultRuleGenerator.createMissingRules(NotificationDefaultRuleGenerator.java:49)
at com.atlassian.servicedesk.plugins.notifications.internal.feature.precondition.NotificationMisconfigurationService.lambda$fixMissingNotificationRules$0(NotificationMisconfigurationService.java:55)
at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870)
at io.atlassian.fugue.Either.flatMap(Either.java:230)
at com.atlassian.servicedesk.plugins.notifications.internal.feature.precondition.NotificationMisconfigurationService.fixMissingNotificationRules(NotificationMisconfigurationService.java:54)
at com.atlassian.servicedesk.plugins.notifications.internal.rest.NotificationMisconfigurationResource.lambda$fixNotificationMisconfiguration$1(NotificationMisconfigurationResource.java:58)
at com.atlassian.pocketknife.step.EitherStep2.lambda$null$0(EitherStep2.java:20)
at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870)
at io.atlassian.fugue.Either.flatMap(Either.java:230)
at com.atlassian.pocketknife.step.EitherStep2.lambda$then$1(EitherStep2.java:20)
at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870)
at io.atlassian.fugue.Either.flatMap(Either.java:230)
at com.atlassian.pocketknife.step.EitherStep2.then(EitherStep2.java:20)
at com.atlassian.servicedesk.plugins.notifications.internal.rest.NotificationMisconfigurationResource.fixNotificationMisconfiguration(NotificationMisconfigurationResource.java:58)
... 3 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
... 18 filtered
at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154)
... 1 filtered
at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68)
... 32 filtered
at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56)
... 4 filtered
at com.atlassian.servicedesk.internal.web.UrlOperationalStatusCheckFilter.doFilterWhenLicensed(UrlOperationalStatusCheckFilter.java:38)
at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:27)
... 4 filtered
at com.atlassian.servicedesk.internal.web.PopulateEyeballForRestFilter.doFilterWhenLicensed(PopulateEyeballForRestFilter.java:36)
at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:27)
... 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 53 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:80)
... 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:78)
... 16 filtered
at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)
... 20 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:181)
at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:139)
at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:92)
at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:64)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:130)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121)
... 4 filtered
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
... 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 4 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
... 29 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
... 28 filtered
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.querydsl.core.QueryException: Caught BatchUpdateException for insert into `AO_9B2E3B_THEN_ACT_CONF_DATA` (`THEN_ACTION_CONFIG_ID`, `CONFIG_DATA_KEY`, `CONFIG_DATA_VALUE`) values (?, ?, ?)
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
at com.querydsl.sql.Configuration.translate(Configuration.java:453)
at com.querydsl.sql.dml.SQLInsertClause.execute(SQLInsertClause.java:396)
at com.atlassian.servicedesk.plugins.automation.internal.configuration.common.dao.QueryDslDaoHelper.executeWithExceptionMessage(QueryDslDaoHelper.java:53)
... 343 more
... 3 filtered
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.Util.getInstance(Util.java:387)
at com.mysql.jdbc.SQLError.createBatchUpdateException(SQLError.java:1154)
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1773)
at com.mysql.jdbc.PreparedStatement.executeBatchInternal(PreparedStatement.java:1257)
at com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:959)
at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:345)
at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:345)
at com.querydsl.sql.dml.AbstractSQLClause.executeBatch(AbstractSQLClause.java:168)
at com.querydsl.sql.dml.AbstractSQLClause.executeBatch(AbstractSQLClause.java:178)
at com.querydsl.sql.dml.SQLInsertClause.execute(SQLInsertClause.java:390)
... 344 more
Caused by: java.sql.SQLException: Incorrect string value: '\xE4\xBB\x8A\xE3\x80\x81...' for column 'CONFIG_DATA_VALUE' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1751)
... 351 more
Diagnosis
Environment
This specific error is related to using MySQL for Jira's database.
Checking Collation
You can use this query to verify tables collation is set correctly to
utf8_bin
1 2 3 4 5 6
SELECT DISTINCT C.collation_name, T.table_name FROM information_schema.tables AS T, information_schema.`collation_character_set_applicability` AS C WHERE C.collation_name = T.table_collation AND T.table_schema = DATABASE() AND C.collation_name != 'utf8_bin';
You can use this query to verify that database collation is set correctly to
utf8_bin
:1 2 3 4
SELECT default_collation_name FROM information_schema.schemata S WHERE schema_name = (SELECT DATABASE() FROM DUAL);
Cause
The problem arises from a misconfiguration of database or table collation.
Solution
Resolution
Use the steps provided in Fix the Collation and Character Set of a MySQL Database for Data Center to correct collation.
Was this helpful?