{"record":{"id":"c6eb1d20a205ac1e","repo":"SonarSource/sonarqube","slug":"plugin-is-ignored-because-the-version-o","errorCode":null,"errorMessage":"Plugin {} [{}] is ignored because the version {} of required plugin [{}] is not installed","messagePattern":"Plugin (.+?) \\[(.+?)\\] is ignored because the version (.+?) of required plugin \\[(.+?)\\] is not installed","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"server/sonar-server-common/src/main/java/org/sonar/server/plugins/PluginRequirementsValidator.java","lineNumber":83,"sourceCode":"\n  boolean isCompatible(T plugin) {\n    if (!Strings.isNullOrEmpty(plugin.getBasePlugin()) && !allPluginsByKeys.containsKey(plugin.getBasePlugin())) {\n      // it extends a plugin that is not installed\n      LOG.warn(\"Plugin {} [{}] is ignored because its base plugin [{}] is not installed\", plugin.getName(), plugin.getKey(), plugin.getBasePlugin());\n      return false;\n    }\n\n    for (PluginInfo.RequiredPlugin requiredPlugin : plugin.getRequiredPlugins()) {\n      PluginInfo installedRequirement = allPluginsByKeys.get(requiredPlugin.getKey());\n      if (installedRequirement == null) {\n        // it requires a plugin that is not installed\n        LOG.warn(\"Plugin {} [{}] is ignored because the required plugin [{}] is not installed\", plugin.getName(), plugin.getKey(), requiredPlugin.getKey());\n        return false;\n      }\n      Version installedRequirementVersion = installedRequirement.getVersion();\n      if (installedRequirementVersion != null && requiredPlugin.getMinimalVersion().compareToIgnoreQualifier(installedRequirementVersion) > 0) {\n        // it requires a more recent version\n        LOG.warn(\"Plugin {} [{}] is ignored because the version {} of required plugin [{}] is not installed\", plugin.getName(), plugin.getKey(),\n            requiredPlugin.getMinimalVersion(), requiredPlugin.getKey());\n        return false;\n      }\n    }\n    return true;\n  }\n\n}\n","sourceCodeStart":65,"sourceCodeEnd":92,"githubUrl":"https://github.com/SonarSource/sonarqube/blob/184c821202192afc1c599fc912d0889b69fffa53/server/sonar-server-common/src/main/java/org/sonar/server/plugins/PluginRequirementsValidator.java#L65-L92","documentation":"PluginRequirementsValidator.isCompatible logs this warning and returns false when an installed plugin satisfies the required plugin key but its installed version is older than the minimal version declared by the dependent plugin. SonarQube ignores the dependent plugin because the dependency version constraint is unmet.","triggerScenarios":"Plugin A declares requiredPlugin-<key>=<minimalVersion>, plugin <key> is installed, installedRequirementVersion != null, and requiredPlugin.getMinimalVersion().compareToIgnoreQualifier(installedVersion) > 0 during plugin validation.","commonSituations":"Upgrading plugin A (which bumped its minimum dependency version) without upgrading dependency plugin B; pinning an old B version; build qualifiers like beta causing confusion (qualifiers are ignored in the comparison).","solutions":["Upgrade the required plugin named in the warning to at least the minimal version shown","Downgrade or remove the dependent plugin that imposes the newer minimum requirement","Check the plugin's changelog for compatible dependency versions and align both plugin versions","If no compatible dependency exists, wait for an updated plugin release or drop the plugin"],"exampleFix":"# before\nextensions/plugins/my-plugin-2.0.jar   # requires findbugs >= 4.0\nextensions/plugins/sonar-findbugs-plugin-3.9.0.jar\n# after\nextensions/plugins/my-plugin-2.0.jar\nextensions/plugins/sonar-findbugs-plugin-4.2.4.jar  # >= minimal version","handlingStrategy":"validation","validationCode":"for (PluginInfo.RequiredPlugin req : plugin.getRequiredPlugins()) {\n  PluginInfo installed = pluginsByKeys.get(req.getKey());\n  if (installed == null ||\n      (installed.getVersion() != null &&\n       req.getMinimalVersion().compareToIgnoreQualifier(installed.getVersion()) > 0)) {\n    throw new IllegalStateException(req.getKey() + \" must be >= \" + req.getMinimalVersion());\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["When upgrading a plugin, upgrade its dependency plugins in the same maintenance window","Check each plugin's changelog for raised minimum dependency versions","Pin compatible plugin version sets in your deployment manifest rather than copying ad-hoc JARs"],"tags":["plugins","sonarqube","version-conflict","dependency"],"backgroundTag":"version-conflict","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"}