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
- Verify the plugin name against https://plugins.jenkins.io/.
- Force an update center refresh: Jenkins.get().getUpdateCenter().updateAllSites().
- Check network connectivity and proxy settings for update center access.
- 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
- Verify plugin names against https://plugins.jenkins.io/.
- Ensure update center sites are reachable and metadata is refreshed.
- Check proxy/firewall settings for update center access.
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
- Ambiguous plugin: {0}
- No such update center: {0}
- {0} is not a Jenkins plugin
- Malformed plugin attribute: {0}
- Null value not allowed as an environment variable: ${key}
AI-assisted analysis of jenkinsci/jenkins@2e228ff40b (2026-08-14).
Data as JSON: /api/errors/72874d059c821d9e.
Report an issue: GitHub.