{"record":{"id":"f06a519d79522200","repo":"SonarSource/sonarqube","slug":"failed-to-load-core-extension","errorCode":null,"errorMessage":"Failed to load core extension ","messagePattern":"Failed to load core extension ","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"critical","filePath":"sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsInstaller.java","lineNumber":78,"sourceCode":"   * @param extensionFilter      filters extensions added to {@link CoreExtension.Context}. When it returns false, the\n   *                             extension is ignored as if it had never been added to the context.\n   * @param additionalSideFilter applied on top of filtering on {@link #supportedAnnotationType} to decide whether\n   *                             extension should be added to container as an object or only as a PropertyDefinition.\n   */\n  public void install(ExtensionContainer container, Predicate<Object> extensionFilter, Predicate<Object> additionalSideFilter) {\n    coreExtensionRepository.loadedCoreExtensions()\n      .forEach(coreExtension -> install(container, extensionFilter, additionalSideFilter, coreExtension));\n  }\n\n  private void install(ExtensionContainer container, Predicate<Object> extensionFilter, Predicate<Object> additionalSideFilter, CoreExtension coreExtension) {\n    String coreExtensionName = coreExtension.getName();\n    try {\n      addDeclaredExtensions(container, extensionFilter, additionalSideFilter, coreExtension);\n\n      LOG.debug(\"Installed core extension: {}\", coreExtensionName);\n      coreExtensionRepository.installed(coreExtension);\n    } catch (Exception e) {\n      throw new RuntimeException(\"Failed to load core extension \" + coreExtensionName, e);\n    }\n  }\n\n  private void addDeclaredExtensions(ExtensionContainer container, Predicate<Object> extensionFilter, Predicate<Object> additionalSideFilter, CoreExtension coreExtension) {\n    ContextImpl context = new ContextImpl(container, extensionFilter, additionalSideFilter, coreExtension.getName());\n    coreExtension.load(context);\n  }\n\n  private class ContextImpl implements CoreExtension.Context {\n    private final ExtensionContainer container;\n    private final Predicate<Object> extensionFilter;\n    private final Predicate<Object> additionalSideFilter;\n    private final String extensionCategory;\n\n    public ContextImpl(ExtensionContainer container, Predicate<Object> extensionFilter, Predicate<Object> additionalSideFilter, String extensionCategory) {\n      this.container = container;\n      this.extensionFilter = extensionFilter;\n      this.additionalSideFilter = additionalSideFilter;","sourceCodeStart":60,"sourceCodeEnd":96,"githubUrl":"https://github.com/SonarSource/sonarqube/blob/184c821202192afc1c599fc912d0889b69fffa53/sonar-core/src/main/java/org/sonar/core/extension/CoreExtensionsInstaller.java#L60-L96","documentation":"CoreExtensionsInstaller installs a core extension into the container by invoking its load() method; any exception during extension registration is wrapped in a RuntimeException naming the extension. This aborts SonarQube startup.","triggerScenarios":"A core extension's load(Context) throws — e.g. a component fails to instantiate, a dependency is missing, or extension code throws during container wiring.","commonSituations":"Corrupt or incompatible plugin/core extension jars; version mismatch between extension and platform; extension's configuration is invalid.","solutions":["Read the wrapped cause in the stack trace to find the failing component","Remove or update the misbehaving core extension jar","Verify the extension version is compatible with the SonarQube version","Check extension configuration properties for invalid values"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  installer.install(container, filter, sideFilter, coreExtension);\n} catch (RuntimeException e) {\n  LOG.error(\"Core extension {} failed to install\", coreExtensionName, e.getCause());\n  throw e; // startup cannot continue safely\n}","preventionTips":["Keep core extension jars compatible with the platform version","Validate extension configuration before startup","Test extensions in a staging environment before production upgrades"],"tags":["startup","extensions","plugins"],"backgroundTag":"module-init-failed","analyzedSha":"184c821202192afc1c599fc912d0889b69fffa53","analyzedAt":"2026-09-09T12:23:51.573Z","contentChangedAt":"2026-09-09T12:23:51.573Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}