theonedev/onedev · error · NotAcceptableException
Unexpected setting: {0}
Error message
Unexpected setting: {0} What it means
ContributedAdministrationSettingPage maps a setting name from page parameters to a contributed administration setting class. If no contribution registers a setting with that name, it throws NotAcceptableException with the setting name.
Source
Thrown at server-core/src/main/java/io/onedev/server/web/page/admin/pluginsettings/ContributedAdministrationSettingPage.java:59
public ContributedAdministrationSettingPage(PageParameters params) {
super(params);
String settingName = params.get(PARAM_SETTING).toString();
for (AdministrationSettingContribution contribution:
OneDev.getExtensions(AdministrationSettingContribution.class)) {
for (Class<? extends ContributedAdministrationSetting> each: contribution.getSettingClasses()) {
if (getSettingName(each).equals(settingName)) {
settingClass = each;
break;
}
}
if (settingClass != null)
break;
}
if (settingClass == null)
throw new NotAcceptableException(MessageFormat.format(_T("Unexpected setting: {0}"), settingName));
}
private SettingService getSettingService() {
return OneDev.getInstance(SettingService.class);
}
@Override
protected void onInitialize() {
super.onInitialize();
String help = EditableUtils.getDescription(settingClass);
if (help != null)
add(new Label("help", help).setEscapeModelStrings(false));
else
add(new WebMarkupContainer("help").setVisible(false));
Form<?> form = new Form<Void>("form") {
View on GitHub (pinned to d44925c47c)
Solutions
- Use the Administration menu to reach the setting instead of a saved URL.
- Reinstall/enable the plugin that contributes the setting.
- Update links after plugin upgrades that renamed the setting.
Example fix
// before: /~admin/oldPluginSetting (plugin removed) // after: open Admin menu and navigate to the contributed setting page
Defensive patterns
Strategy: fallback
Validate before calling
// verify the setting exists before deep-linking var supported = SettingService.getContributedAdministrationSettings(); if (!supported.contains(settingName)) navigateToAdminMenu();
Try / catch
try {
openAdminSetting(name);
} catch (NotAcceptableException e) {
openAdminMenu();
} Prevention
- Navigate settings via the Administration menu.
- Re-check links after plugin install/remove/upgrade.
- Keep plugins updated to versions matching the server.
When it happens
Trigger: Navigating to an administration settings URL whose settingName does not match any plugin-contributed administration setting (e.g. after a plugin was removed or renamed its setting).
Common situations: Bookmarked admin setting pages after uninstalling/disabling a plugin; version change where a plugin renamed its setting page; hand-typed URL.
Understand the failure class
Background: "Invalid query parameter" / "Failed to parse value of ...": fixing bad query string parameters across APIs — this error's family across 36 libraries.
Related errors
- Iteration '${iterationName}' not found
- Link spec not found: ${linkName}
- Pull request not found:
- Not found
- Unable to find project to import build spec: {0}
AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06).
Data as JSON: /api/errors/8c626b3c6abc6096.
Report an issue: GitHub.