After attempting to manually upgrade/repair a MID Server, startup fails with java.lang.NoClassDefFoundError: Lcom/google/inject/internal/util/$ImmutableList;Issue Sometimes a MID Server installation may become corrupted, and instead of installing a new clean install, an attempt is made to manually repair or upgrade that install. Some of these processes/steps given in a variety of KB articles don't deal with the important step the upgrade of deleting files that are no longer required. Between Quebec and Rome, the guice-mulitbindings.jar was removed, but if you run a MID Server on Rome or later with that in place, you will see this error on startup. 04/18/22 13:23:51 (410) WrapperStartStopAppMain Welcome to the ServiceNow MID Server04/18/22 13:23:51 (754) WrapperStartStopAppMain SEVERE *** ERROR *** terminating due to fatal errorjava.lang.NoClassDefFoundError: Lcom/google/inject/internal/util/$ImmutableList; at java.base/java.lang.Class.getDeclaredFields0(Native Method) at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3061) at java.base/java.lang.Class.getDeclaredFields(Class.java:2248) at com.google.inject.internal.DeclaredMembers.getDeclaredFields(DeclaredMembers.java:40) at com.google.inject.spi.InjectionPoint.getDeclaredFields(InjectionPoint.java:800) at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:710) at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:423) at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:442) at com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:118) at com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:107) at com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:42) at com.google.inject.multibindings.Multibinder$RealMultibinder.configure(Multibinder.java:269) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:409) at com.google.inject.multibindings.Multibinder.newSetBinder(Multibinder.java:158) at com.google.inject.multibindings.Multibinder.newSetBinder(Multibinder.java:168) at com.snc.midserver.security.eccfirewall.internal.rule.systemcommand.SystemCommandModule.configure(SystemCommandModule.java:23) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:409) at com.google.inject.AbstractModule.install(AbstractModule.java:106) at com.snc.midserver.security.eccfirewall.internal.rule.RuleModule.configure(RuleModule.java:34) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:409) at com.google.inject.PrivateModule.install(PrivateModule.java:172) at com.snc.midserver.security.eccfirewall.internal.EccFirewallModule.configure(EccFirewallModule.java:38) at com.google.inject.PrivateModule.configure(PrivateModule.java:102) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:409) at com.google.inject.spi.Elements.getElements(Elements.java:108) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) at com.google.inject.Guice.createInjector(Guice.java:87) at com.google.inject.Guice.createInjector(Guice.java:69) at com.snc.llama.thirdparty.guice.boot.api.GuiceEntryRunnableFactory.create(GuiceEntryRunnableFactory.java:59) at com.snc.llama.bootstrap.api.Bootstrapper.run(Bootstrapper.java:48) at com.snc.llama.thirdparty.guice.boot.api.GuiceBootstrapper.run(GuiceBootstrapper.java:27) at com.service_now.mid.Main.doStaticStartRequest(Main.java:488) at com.service_now.mid.Main.doStaticCommandDispatch(Main.java:456) at com.service_now.mid.Main.main(Main.java:100) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.java:429) at java.base/java.lang.Thread.run(Thread.java:829)Caused by: java.lang.ClassNotFoundException: com.google.inject.internal.util.$ImmutableList at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 43 more 04/18/22 13:23:51 (754) WrapperStartStopAppMain the ServiceNow MID Server is now terminatedReleaseFrom Rome.CauseThe normal Upgrade process would have deleted this file, so a manual intervention must have been the cause.ResolutionDelete the <install folder>agent\lib\guice-mulitbindings.jar file manually.Restart the MID Server Service In future if a MID Server needs repairing it is much safer to retire it and install a new one. Features can then be set to use the replacement instead. For upgrade issues, depending on the cause, try these methods first: For failure to download zip files: KB0565184 How to upgrade a MID Server that does not have access to the AutoUpgrade install server on the InternetWhen the MID Server shut down, but never started up again: KB0779816 How to continue a MID Server upgrade after it has crashed in the middle of the ServiceNow Platform Distribution Upgrade service leaving the MID Server down and service not running