You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Tomcat上启动Jenkins时遭遇InstanceIdentity单例缺失错误

Fixing "InstanceIdentity is missing its singleton" Error When Starting Jenkins on Tomcat

Hey there, let's tackle this InstanceIdentity singleton issue you're hitting when firing up Jenkins on Tomcat. This error usually pops up when Jenkins can't initialize its identity key pair properly—often tied to file permissions or corrupted Jenkins home directory files. Here are the most common fixes to get you back up and running:

Common Fixes to Try

  • Check Jenkins Home Directory Permissions
    Make sure the user running Tomcat has full read/write access to your Jenkins home folder. If Tomcat can't write to this directory, it can't generate or access the InstanceIdentity files. On Linux systems, you can run something like:

    chown -R tomcat:tomcat /path/to/your/jenkins_home
    chmod -R 755 /path/to/your/jenkins_home
    

    Adjust the user/group and path to match your specific setup.

  • Delete Corrupted InstanceIdentity Files
    Sometimes the identity files get corrupted. Navigate to your Jenkins home directory, look for the identity.key.enc and instance-identity.xml files, delete them, then restart Tomcat. Jenkins will automatically regenerate these files on startup.

  • Verify Jenkins and Tomcat Compatibility
    Double-check that your Jenkins version is compatible with the Tomcat version you're using. Mismatched versions can cause odd initialization issues like this one.

  • Rule Out Plugin Conflicts
    If you recently added or updated plugins, try starting Jenkins with plugins disabled to eliminate conflicts. You can do this by adding --disable-plugins to your Jenkins startup arguments, or by temporarily renaming the plugins folder in your Jenkins home directory.


Error Details You Provided

请求处理过程中出现问题。请查看我们的bug追踪器,确认是否已有类似问题报告。若已存在,请投票并添加评论以评估问题影响;若为新问题,请提交新工单,提交时需附上完整堆栈跟踪、Jenkins版本及相关插件信息,用户列表也有助于排查问题。

Stack Trace

java.lang.AssertionError: InstanceIdentity is missing its singleton 
at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.get(InstanceIdentity.java:133) 
at org.jenkinsci.main.modules.instance_identity.InstanceIdentityRSAProvider.getKeyPair(InstanceIdentityRSAProvider.java:23) 
at jenkins.model.identity.InstanceIdentityProvider$KeyTypes.get(InstanceIdentityProvider.java:161) 
at jenkins.model.identity.InstanceIdentityProvider$KeyTypes.getKeyPair(InstanceIdentityProvider.java:210) 
at jenkins.model.identity.IdentityRootAction.getUrlName(IdentityRootAction.java:42) 
at jenkins.model.Jenkins.getUnprotectedRootActions(Jenkins.java:4695) 
at jenkins.model.Jenkins.isSubjectToMandatoryReadPermissionCheck(Jenkins.java:4667) 
at jenkins.model.Jenkins.getTarget(Jenkins.java:4645) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:674) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) 
at org.kohsuke.stapler.Stapler.service(Stapler.java:238) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 
Caused: javax.servlet.ServletException: Servlet execution threw an exception 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:238) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) 
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90) 
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
at org.apache.catalina.core.ApplicationFilterChain.

内容的提问来源于stack exchange,提问作者Suresh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:08:37