jenkinsci/jenkins · warning · Failure

No such plugin: {0}

Error message

No such plugin: {0}

What it means

Failure thrown when the requested plugin name does not match any plugin in any configured update center after all dot-split attempts are exhausted. The plugin identifier p remains null after the parsing loop.

Source

Thrown at core/src/main/java/hudson/PluginManager.java:1756

                    }
                    String pluginName = n.substring(0, index);
                    String siteName = n.substring(index + 1);
                    UpdateSite.Plugin plugin = getPlugin(pluginName, siteName);
                    // There could be cases like:
                    // 'plugin.ambiguous.updatesite' where both
                    // 'plugin' @ 'ambiguous.updatesite' and 'plugin.ambiguous' @ 'updatesite' resolve to valid plugins
                    if (plugin != null) {
                        if (p != null) {
                            throw new Failure("Ambiguous plugin: " + n);
                        }
                        p = plugin;
                    }
                    index = n.indexOf('.', index + 1);
                }
            }

            if (p == null) {
                throw new Failure("No such plugin: " + n);
            }
            Future<UpdateCenter.UpdateCenterJob> jobFuture = p.deploy(dynamicLoad, correlationId, batch, false);
            installJobs.add(jobFuture);
        }

        final Jenkins jenkins = Jenkins.get();
        final UpdateCenter updateCenter = jenkins.getUpdateCenter();

        if (dynamicLoad) {
            installJobs.add(updateCenter.addJob(updateCenter.new CompleteBatchJob(batch, start, correlationId)));
        }

        final Authentication currentAuth = Jenkins.getAuthentication2();

        if (!jenkins.getInstallState().isSetupComplete()) {
            jenkins.setInstallState(InstallState.INITIAL_PLUGINS_INSTALLING);
            updateCenter.persistInstallStatus();
            new Thread(() -> {

View on GitHub (pinned to 2e228ff40b)

Solutions

  1. Verify the plugin name against https://plugins.jenkins.io/.
  2. Force an update center refresh: Jenkins.get().getUpdateCenter().updateAllSites().
  3. Check network connectivity and proxy settings for update center access.
  4. Ensure the correct update site URL is configured in Manage Jenkins > Plugins > Advanced.

Example fix

// before
// install request for 'nonexistent-plugin'

// after — refresh sites then verify
UpdateCenter uc = jenkins.getUpdateCenter();
uc.updateAllSites().get(); // refresh metadata
if (uc.getPlugin("plugin-name", "default") == null) {
    throw new IllegalArgumentException("Plugin not found in any update site");
}
Defensive patterns

Strategy: validation

Validate before calling

// Refresh update centers then check
Jenkins.get().getUpdateCenter().updateAllSites().get(30, TimeUnit.SECONDS);
UpdateSite.Plugin p = jenkins.getUpdateCenter().getPlugin(pluginName, "default");
if (p == null) {
    throw new IllegalArgumentException("No such plugin: " + pluginName);
}

Try / catch

try {
    // plugin install API call
} catch (Failure f) {
    if (f.getMessage().startsWith("No such plugin")) {
        listener.error("Plugin not found. Refreshing update sites...");
        jenkins.getUpdateCenter().updateAllSites().get();
    } else {
        throw f;
    }
}

Prevention

When it happens

Trigger: A user or API call specifies a plugin short name that does not exist in any registered update site, or the update center metadata has not been refreshed/synced.

Common situations: Typo in the plugin name, plugin has been removed/archived from the update center, update center JSON is stale or unreachable (offline Jenkins, proxy blocking downloads), or the update site URL is misconfigured.

Related errors


AI-assisted analysis of jenkinsci/jenkins@2e228ff40b (2026-08-14). Data as JSON: /api/errors/72874d059c821d9e. Report an issue: GitHub.