jenkinsci/jenkins · warning · Failure
No such update center: {0}
Error message
No such update center: {0} What it means
Failure thrown by getPlugin(pluginName, siteName) when the specified update site ID does not match any UpdateSite registered in the UpdateCenter. The siteName is extracted from the plugin identifier's dot-split.
Source
Thrown at core/src/main/java/hudson/PluginManager.java:1811
break;
}
updateCenter.persistInstallStatus();
if (!failures) {
try (ACLContext acl = ACL.as2(currentAuth)) {
InstallUtil.proceedToNextStateFrom(InstallState.INITIAL_PLUGINS_INSTALLING);
}
}
}).start();
}
return installJobs;
}
@CheckForNull
private UpdateSite.Plugin getPlugin(String pluginName, String siteName) {
UpdateSite updateSite = Jenkins.get().getUpdateCenter().getById(siteName);
if (updateSite == null) {
throw new Failure("No such update center: " + siteName);
}
return updateSite.getPlugin(pluginName);
}
/**
* Bare-minimum configuration mechanism to change the update center.
*/
@RequirePOST
public HttpResponse doSiteConfigure(@QueryParameter String site) throws IOException {
Jenkins hudson = Jenkins.get();
hudson.checkPermission(Jenkins.ADMINISTER);
UpdateCenter uc = hudson.getUpdateCenter();
PersistedList<UpdateSite> sites = uc.getSites();
sites.removeIf(s -> s.getId().equals(UpdateCenter.ID_DEFAULT));
sites.add(new UpdateSite(UpdateCenter.ID_DEFAULT, site));
return new HttpRedirect("advanced");
}View on GitHub (pinned to 2e228ff40b)
Solutions
- List configured update sites: Jenkins.get().getUpdateCenter().getSiteNames() and verify the ID.
- Add the missing update site in Manage Jenkins > Plugins > Advanced > Update Site.
- Correct the plugin identifier to use a valid update site name.
Example fix
// before — references unknown site
// 'plugin.bad-site-id'
// after — use a registered site
List<String> sites = jenkins.getUpdateCenter().getSiteNames();
// verify 'default' exists
UpdateSite.Plugin p = jenkins.getUpdateCenter()
.getById("default").getPlugin("plugin"); Defensive patterns
Strategy: validation
Validate before calling
List<String> siteNames = jenkins.getUpdateCenter().getSiteNames();
if (!siteNames.contains(siteName)) {
throw new IllegalArgumentException("No such update center: " + siteName + ". Available: " + siteNames);
} Try / catch
try {
// plugin install with site reference
} catch (Failure f) {
if (f.getMessage().startsWith("No such update center")) {
listener.error("Update site not configured: " + f.getMessage());
listener.error("Available sites: " + jenkins.getUpdateCenter().getSiteNames());
} else {
throw f;
}
} Prevention
- Verify update site IDs exist in Manage Jenkins > Plugins > Advanced before referencing them.
- Register custom update centers before deploying plugins from them.
When it happens
Trigger: A plugin install request references an update site by ID that has not been configured or is misspelled, e.g., 'plugin@nonexistent-site' or a dot-split producing an unknown site name.
Common situations: Update site was removed or renamed, the site ID is mistyped, or a custom update center was not properly registered via Manage Jenkins > Plugins > Advanced.
Related errors
- No such plugin: {0}
- Ambiguous plugin: {0}
- Malformed plugin attribute: {0}
- No such agent "{node_s}" exists.
- No such agent "{node_s}" exists. Did you mean "{adv}"?
AI-assisted analysis of jenkinsci/jenkins@2e228ff40b (2026-08-14).
Data as JSON: /api/errors/413811e9e24d7f04.
Report an issue: GitHub.