java.lang.IllegalStateException: User 'johndoe' exists but has no unique key mapping.

Atlassian JIRA | Janet Albion [Atlassian] | 2 years ago
  1. 0

    Steps to reproduce: # configure JIRA connected to Crowd and connect it to LDAP # create username in LDAP with trailing space . Eg: "johndoe " (please note the white space) # synchronize Crowd with LDAP # synchronize JIRA with Crowd # (not a bug) user will be able to login with the trailing space. (i) in the database, run the queries below: {code:sql} SELECT concat('-',lower_user_name,'-'),hex(concat('-',lower_user_name,'-')) FROM cwd_user where lower_user_name like '%johndoe%'; +---------------------------------+--------------------------------------+ | concat('-',lower_user_name,'-') | hex(concat('-',lower_user_name,'-')) | +---------------------------------+--------------------------------------+ | -johndoe - | 2D7468796D65202D | +---------------------------------+--------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT concat('-',lower_user_name,'-'),hex(concat('-',lower_user_name,'-')) , concat('-',user_key,'-'), hex(concat('-',user_key,'-')) FROM app_user where lower_user_name like '%johndoe%'; +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ | concat('-',lower_user_name,'-') | hex(concat('-',lower_user_name,'-')) | concat('-',user_key,'-') | hex(concat('-',user_key,'-')) | +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ | -johndoe - | 2D7468796D65202D | -johndoe - | 2D7468796D65202D | +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ 1 row in set (0.00 sec) {code} # rename the user in LDAP, remove the trailing space. i.e : username become "johndoe" (minus the whitespace at the end) # synchronize Crowd with LDAP # synchronize JIRA with Crowd # (BUG) in JIRA UI, navigate to _Administrations > Users > select on the username > JIRA throws error: {code} Cause Referer URL: https://jira.example.com/jira/secure/admin/user/UserBrowser.jspa java.lang.IllegalStateException: User 'johndoe' exists but has no unique key mapping. Hide stack trace java.lang.IllegalStateException: User 'johndoe' exists but has no unique key mapping. at com.atlassian.jira.user.util.DefaultUserManager.getUserByName(DefaultUserManager.java:262) at com.atlassian.jira.web.action.admin.user.ViewUser.getApplicationUser(ViewUser.java:82) at com.atlassian.jira.web.action.admin.user.ViewUser.getUser(ViewUser.java:75) {code} (i) in the database, run the SQL queries below: {code:sql} SELECT concat('-',lower_user_name,'-'),hex(concat('-',lower_user_name,'-')) FROM cwd_user where lower_user_name like '%johndoe%'; +---------------------------------+--------------------------------------+ | concat('-',lower_user_name,'-') | hex(concat('-',lower_user_name,'-')) | +---------------------------------+--------------------------------------+ | -johndoe- | 2D7468796D65202D | +---------------------------------+--------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT concat('-',lower_user_name,'-'),hex(concat('-',lower_user_name,'-')) , concat('-',user_key,'-'), hex(concat('-',user_key,'-')) FROM app_user where lower_user_name like '%thyme%'; +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ | concat('-',lower_user_name,'-') | hex(concat('-',lower_user_name,'-')) | concat('-',user_key,'-') | hex(concat('-',user_key,'-')) | +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ | -johndoe - | 2D7468796D65202D | -johndoe - | 2D7468796D65202D | +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ 1 row in set (0.00 sec) {code} (!) we can see here that the app_user table is not updated even though the cwd_user table was updated after the synchronization. This mismatch cause the error to be thrown. h4.Workaround * the workaround at [JIRA Login Fails With the Message - User exists but has no unique key mapping|https://confluence.atlassian.com/display/JIRAKB/JIRA+Login+Fails+With+the+Message+-+User+exists+but+has+no+unique+key+mapping] can be used.

    Atlassian JIRA | 2 years ago | Janet Albion [Atlassian]
    java.lang.IllegalStateException: User 'johndoe' exists but has no unique key mapping.
  2. 0

    Steps to reproduce: # configure JIRA connected to Crowd and connect it to LDAP # create username in LDAP with trailing space . Eg: "johndoe " (please note the white space) # synchronize Crowd with LDAP # synchronize JIRA with Crowd # (not a bug) user will be able to login with the trailing space. (i) in the database, run the queries below: {code:sql} SELECT concat('-',lower_user_name,'-'),hex(concat('-',lower_user_name,'-')) FROM cwd_user where lower_user_name like '%johndoe%'; +---------------------------------+--------------------------------------+ | concat('-',lower_user_name,'-') | hex(concat('-',lower_user_name,'-')) | +---------------------------------+--------------------------------------+ | -johndoe - | 2D7468796D65202D | +---------------------------------+--------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT concat('-',lower_user_name,'-'),hex(concat('-',lower_user_name,'-')) , concat('-',user_key,'-'), hex(concat('-',user_key,'-')) FROM app_user where lower_user_name like '%johndoe%'; +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ | concat('-',lower_user_name,'-') | hex(concat('-',lower_user_name,'-')) | concat('-',user_key,'-') | hex(concat('-',user_key,'-')) | +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ | -johndoe - | 2D7468796D65202D | -johndoe - | 2D7468796D65202D | +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ 1 row in set (0.00 sec) {code} # rename the user in LDAP, remove the trailing space. i.e : username become "johndoe" (minus the whitespace at the end) # synchronize Crowd with LDAP # synchronize JIRA with Crowd # (BUG) in JIRA UI, navigate to _Administrations > Users > select on the username > JIRA throws error: {code} Cause Referer URL: https://jira.example.com/jira/secure/admin/user/UserBrowser.jspa java.lang.IllegalStateException: User 'johndoe' exists but has no unique key mapping. Hide stack trace java.lang.IllegalStateException: User 'johndoe' exists but has no unique key mapping. at com.atlassian.jira.user.util.DefaultUserManager.getUserByName(DefaultUserManager.java:262) at com.atlassian.jira.web.action.admin.user.ViewUser.getApplicationUser(ViewUser.java:82) at com.atlassian.jira.web.action.admin.user.ViewUser.getUser(ViewUser.java:75) {code} (i) in the database, run the SQL queries below: {code:sql} SELECT concat('-',lower_user_name,'-'),hex(concat('-',lower_user_name,'-')) FROM cwd_user where lower_user_name like '%johndoe%'; +---------------------------------+--------------------------------------+ | concat('-',lower_user_name,'-') | hex(concat('-',lower_user_name,'-')) | +---------------------------------+--------------------------------------+ | -johndoe- | 2D7468796D65202D | +---------------------------------+--------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT concat('-',lower_user_name,'-'),hex(concat('-',lower_user_name,'-')) , concat('-',user_key,'-'), hex(concat('-',user_key,'-')) FROM app_user where lower_user_name like '%thyme%'; +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ | concat('-',lower_user_name,'-') | hex(concat('-',lower_user_name,'-')) | concat('-',user_key,'-') | hex(concat('-',user_key,'-')) | +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ | -johndoe - | 2D7468796D65202D | -johndoe - | 2D7468796D65202D | +---------------------------------+--------------------------------------+--------------------------+-------------------------------+ 1 row in set (0.00 sec) {code} (!) we can see here that the app_user table is not updated even though the cwd_user table was updated after the synchronization. This mismatch cause the error to be thrown. h4.Workaround * the workaround at [JIRA Login Fails With the Message - User exists but has no unique key mapping|https://confluence.atlassian.com/display/JIRAKB/JIRA+Login+Fails+With+the+Message+-+User+exists+but+has+no+unique+key+mapping] can be used.

    Atlassian JIRA | 2 years ago | Janet Albion [Atlassian]
    java.lang.IllegalStateException: User 'johndoe' exists but has no unique key mapping.
  3. Speed up your debug routine!

    Automated exception search integrated into your IDE

  4. 0

    *Steps to Reproduce* Unknown at this time how to cause this data corruption. It may have been caused by a DB transaction failure due to performance problems on Oracle DB. * On an instance where this error message appears in the logs... * Locate an issue where this user will be suggested as an assignee. * Attempt to edit the issue. It is difficult to reliably reproduce this as the suggested assignee logic is complicated. One way that may work is assign the issue to the problem user then reassign to someone else. This can be done from an Agile board plan view with "." followed by "Assign". *Expected* * All issues can be edited regardless of which users are in Suggested Assignee list. *Actual Results* * An exception occurs which prevents display of the Edit Issue dialog. {code} 2015-01-30 13:19:04,023 http-bio-8080-exec-9 ERROR admin 797x7571x1 10utbej 192.168.7.1 /secure/admin/user/UserBrowser.jspa [webwork.util.ValueStack] METHOD: "avatarUrl", exception: java.lang.IllegalStateException: User 'xxxx' exists but has no unique key mapping. at com.atlassian.jira.user.util.DefaultUserManager.getUserByName(DefaultUserManager.java:262) at com.atlassian.jira.avatar.AvatarServiceImpl.getAvatarURL(AvatarServiceImpl.java:127) at com.atlassian.jira.web.action.admin.user.UserBrowser.getAvatarUrl(UserBrowser.java:200) at sun.reflect.GeneratedMethodAccessor764.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(InjectionUtils.java:70) at webwork.util.InjectionUtils.invoke(InjectionUtils.java:56) at webwork.util.ValueStack.findValue(ValueStack.java:517) at webwork.util.ValueStack.findValue(ValueStack.java:216) at webwork.view.taglib.WebWorkBodyTagSupport.findValue(WebWorkBodyTagSupport.java:62) at webwork.view.taglib.BasicPropertyTag.doStartTag(BasicPropertyTag.java:54) at org.apache.jsp.secure.admin.user.views.userbrowser_jsp._jspx_meth_ww_005fproperty_005f19(userbrowser_jsp.java:3300) at org.apache.jsp.secure.admin.user.views.userbrowser_jsp._jspx_meth_ww_005fiterator_005f2(userbrowser_jsp.java:3134) at org.apache.jsp.secure.admin.user.views.userbrowser_jsp._jspService(userbrowser_jsp.java:240) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) <+11> (ApplicationFilterChain.java:305) (ApplicationFilterChain.java:210) (XContentTypeOptionsNoSniffFilter.java:22) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (HeaderSanitisingFilter.java:32) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.jira.tzdetect.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:39) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.jira.baseurl.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:38) <+8> (AbstractHttpFilter.java:31) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (ContextFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCommonFilter.preventDoubleInvocation(PrettyUrlsCommonFilter.java:38) at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:74) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.labs.botkiller.BotKillerFilter.doFilter(BotKillerFilter.java:30) <+12> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SiteMeshFilter.java:66) (SitemeshPageFilter.java:123) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+19> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SecurityFilter.java:82) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (BaseLoginFilter.java:169) (JiraLoginFilter.java:70) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) (OAuthFilter.java:55) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.bonfire.web.filters.BonfireP3PFilter.doFilter(BonfireP3PFilter.java:43) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+8> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+14> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ApplicationDispatcher.java:690) (ApplicationDispatcher.java:477) (ApplicationDispatcher.java:402) (ApplicationDispatcher.java:329) (JiraWebworkViewDispatcher.java:124) (JiraWebworkViewDispatcher.java:104) (JiraWebworkViewDispatcher.java:73) (JiraWebworkActionDispatcher.java:204) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) <+14> (ApplicationFilterChain.java:305) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (XContentTypeOptionsNoSniffFilter.java:22) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (HeaderSanitisingFilter.java:44) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.jira.tzdetect.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:39) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.jira.baseurl.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:38) <+8> (AbstractHttpFilter.java:31) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (ContextFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.mywork.client.filter.ServingRequestsFilter.doFilter(ServingRequestsFilter.java:37) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.labs.botkiller.BotKillerFilter.doFilter(BotKillerFilter.java:36) <+23> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AccessLogFilter.java:103) (AccessLogFilter.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (XsrfTokenAdditionRequestFilter.java:54) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SiteMeshFilter.java:181) (SiteMeshFilter.java:85) (SitemeshPageFilter.java:123) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+22> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SecurityFilter.java:234) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (TrustedApplicationsFilter.java:100) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (BaseLoginFilter.java:169) (JiraLoginFilter.java:70) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) (OAuthFilter.java:55) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.bonfire.web.filters.BonfireP3PFilter.doFilter(BonfireP3PFilter.java:57) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+13> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ProfilingFilter.java:99) (JIRAProfilingFilter.java:19) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractJohnsonFilter.java:71) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) <+10> (UrlRewriteFilter.java:394) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (GzipFilter.java:80) (GzipFilter.java:51) (JiraGzipFilter.java:55) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+41> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (JWDSendRedirectFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractCachingFilter.java:33) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractEncodingFilter.java:41) (AbstractHttpFilter.java:31) (PathMatchingEncodingFilter.java:49) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (JiraStartupChecklistFilter.java:78) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (JiraFirstFilter.java:57) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (StandardWrapperValve.java:225) (StandardContextValve.java:123) (AuthenticatorBase.java:472) (StandardHostValve.java:168) (ErrorReportValve.java:98) (StandardEngineValve.java:118) (AccessLogValve.java:927) (CoyoteAdapter.java:407) (AbstractHttp11Processor.java:1001) (AbstractProtocol.java:585) (JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) {code} *Workaround* * Disable Avatar features. See [How to disable Avatar features in JIRA|https://confluence.atlassian.com/display/JIRAKB/How+to+disable+Avatar+features+in+JIRA]. * For some customers this workaround ceases to prevent the exceptions after some time has passed.

    Atlassian JIRA | 2 years ago | Morgan Knicely [Atlassian]
    java.lang.IllegalStateException: User 'xxxx' exists but has no unique key mapping.
  5. 0

    *Steps to Reproduce* Unknown at this time how to cause this data corruption. It may have been caused by a DB transaction failure due to performance problems on Oracle DB. * On an instance where this error message appears in the logs... * Locate an issue where this user will be suggested as an assignee. * Attempt to edit the issue. It is difficult to reliably reproduce this as the suggested assignee logic is complicated. One way that may work is assign the issue to the problem user then reassign to someone else. This can be done from an Agile board plan view with "." followed by "Assign". *Expected* * All issues can be edited regardless of which users are in Suggested Assignee list. *Actual Results* * An exception occurs which prevents display of the Edit Issue dialog. {code} 2015-01-30 13:19:04,023 http-bio-8080-exec-9 ERROR admin 797x7571x1 10utbej 192.168.7.1 /secure/admin/user/UserBrowser.jspa [webwork.util.ValueStack] METHOD: "avatarUrl", exception: java.lang.IllegalStateException: User 'xxxx' exists but has no unique key mapping. at com.atlassian.jira.user.util.DefaultUserManager.getUserByName(DefaultUserManager.java:262) at com.atlassian.jira.avatar.AvatarServiceImpl.getAvatarURL(AvatarServiceImpl.java:127) at com.atlassian.jira.web.action.admin.user.UserBrowser.getAvatarUrl(UserBrowser.java:200) at sun.reflect.GeneratedMethodAccessor764.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(InjectionUtils.java:70) at webwork.util.InjectionUtils.invoke(InjectionUtils.java:56) at webwork.util.ValueStack.findValue(ValueStack.java:517) at webwork.util.ValueStack.findValue(ValueStack.java:216) at webwork.view.taglib.WebWorkBodyTagSupport.findValue(WebWorkBodyTagSupport.java:62) at webwork.view.taglib.BasicPropertyTag.doStartTag(BasicPropertyTag.java:54) at org.apache.jsp.secure.admin.user.views.userbrowser_jsp._jspx_meth_ww_005fproperty_005f19(userbrowser_jsp.java:3300) at org.apache.jsp.secure.admin.user.views.userbrowser_jsp._jspx_meth_ww_005fiterator_005f2(userbrowser_jsp.java:3134) at org.apache.jsp.secure.admin.user.views.userbrowser_jsp._jspService(userbrowser_jsp.java:240) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) <+11> (ApplicationFilterChain.java:305) (ApplicationFilterChain.java:210) (XContentTypeOptionsNoSniffFilter.java:22) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (HeaderSanitisingFilter.java:32) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.jira.tzdetect.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:39) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.jira.baseurl.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:38) <+8> (AbstractHttpFilter.java:31) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (ContextFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCommonFilter.preventDoubleInvocation(PrettyUrlsCommonFilter.java:38) at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:74) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.labs.botkiller.BotKillerFilter.doFilter(BotKillerFilter.java:30) <+12> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SiteMeshFilter.java:66) (SitemeshPageFilter.java:123) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+19> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SecurityFilter.java:82) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (BaseLoginFilter.java:169) (JiraLoginFilter.java:70) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) (OAuthFilter.java:55) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.bonfire.web.filters.BonfireP3PFilter.doFilter(BonfireP3PFilter.java:43) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+8> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+14> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ApplicationDispatcher.java:690) (ApplicationDispatcher.java:477) (ApplicationDispatcher.java:402) (ApplicationDispatcher.java:329) (JiraWebworkViewDispatcher.java:124) (JiraWebworkViewDispatcher.java:104) (JiraWebworkViewDispatcher.java:73) (JiraWebworkActionDispatcher.java:204) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) <+14> (ApplicationFilterChain.java:305) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (XContentTypeOptionsNoSniffFilter.java:22) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (HeaderSanitisingFilter.java:44) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.jira.tzdetect.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:39) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.jira.baseurl.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:38) <+8> (AbstractHttpFilter.java:31) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (ContextFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.mywork.client.filter.ServingRequestsFilter.doFilter(ServingRequestsFilter.java:37) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.labs.botkiller.BotKillerFilter.doFilter(BotKillerFilter.java:36) <+23> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AccessLogFilter.java:103) (AccessLogFilter.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (XsrfTokenAdditionRequestFilter.java:54) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SiteMeshFilter.java:181) (SiteMeshFilter.java:85) (SitemeshPageFilter.java:123) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+22> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SecurityFilter.java:234) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (TrustedApplicationsFilter.java:100) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (BaseLoginFilter.java:169) (JiraLoginFilter.java:70) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) (OAuthFilter.java:55) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.bonfire.web.filters.BonfireP3PFilter.doFilter(BonfireP3PFilter.java:57) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+13> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ProfilingFilter.java:99) (JIRAProfilingFilter.java:19) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractJohnsonFilter.java:71) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) <+10> (UrlRewriteFilter.java:394) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (GzipFilter.java:80) (GzipFilter.java:51) (JiraGzipFilter.java:55) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+41> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (JWDSendRedirectFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractCachingFilter.java:33) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractEncodingFilter.java:41) (AbstractHttpFilter.java:31) (PathMatchingEncodingFilter.java:49) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (JiraStartupChecklistFilter.java:78) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (JiraFirstFilter.java:57) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (StandardWrapperValve.java:225) (StandardContextValve.java:123) (AuthenticatorBase.java:472) (StandardHostValve.java:168) (ErrorReportValve.java:98) (StandardEngineValve.java:118) (AccessLogValve.java:927) (CoyoteAdapter.java:407) (AbstractHttp11Processor.java:1001) (AbstractProtocol.java:585) (JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) {code} *Workaround* * Disable Avatar features. See [How to disable Avatar features in JIRA|https://confluence.atlassian.com/display/JIRAKB/How+to+disable+Avatar+features+in+JIRA]. * For some customers this workaround ceases to prevent the exceptions after some time has passed.

    Atlassian JIRA | 2 years ago | Morgan Knicely [Atlassian]
    java.lang.IllegalStateException: User 'xxxx' exists but has no unique key mapping.

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalStateException

      User 'johndoe' exists but has no unique key mapping.

      at com.atlassian.jira.user.util.DefaultUserManager.getUserByName()
    2. com.atlassian.jira
      ViewUser.getUser
      1. com.atlassian.jira.user.util.DefaultUserManager.getUserByName(DefaultUserManager.java:262)
      2. com.atlassian.jira.web.action.admin.user.ViewUser.getApplicationUser(ViewUser.java:82)
      3. com.atlassian.jira.web.action.admin.user.ViewUser.getUser(ViewUser.java:75)
      3 frames