theonedev/onedev · warning · UnauthenticatedException
User sign-up is disabled
Error message
User sign-up is disabled
What it means
SignUpPage's constructor rejects access when self-registration is disabled: if getSecuritySetting().isEnableSelfRegister() is false it throws UnauthenticatedException('User sign-up is disabled'), so the sign-up page only renders when open registration is turned on in security settings.
Source
Thrown at server-core/src/main/java/io/onedev/server/web/page/security/SignUpPage.java:47
import io.onedev.server.model.User;
import io.onedev.server.model.support.administration.SecuritySetting;
import io.onedev.server.persistence.TransactionService;
import io.onedev.server.security.SecurityUtils;
import io.onedev.server.util.Path;
import io.onedev.server.util.PathNode;
import io.onedev.server.util.patternset.PatternSet;
import io.onedev.server.web.editable.BeanContext;
import io.onedev.server.web.editable.BeanEditor;
import io.onedev.server.web.page.HomePage;
import io.onedev.server.web.page.simple.SimplePage;
public class SignUpPage extends SimplePage {
public SignUpPage(PageParameters params) {
super(params);
if (!getSecuritySetting().isEnableSelfRegister())
throw new UnauthenticatedException("User sign-up is disabled");
if (getLoginUser() != null)
throw new IllegalStateException("Cannot sign up a user while signed in");
}
private SecuritySetting getSecuritySetting() {
return OneDev.getInstance(SettingService.class).getSecuritySetting();
}
@Override
protected void onInitialize() {
super.onInitialize();
SignUpBean bean = new SignUpBean();
BeanEditor editor = BeanContext.edit("editor", bean, Sets.newHashSet(PROP_TYPE, PROP_NOTIFY_OWN_EVENTS), true);
Form<?> form = new Form<Void>("form") {
@OverrideView on GitHub (pinned to d44925c47c)
Solutions
- Ask an administrator to enable self-registration in Security Setting (Authentication section) if open sign-up is desired.
- Use the admin's user-invitation or manual user creation flow instead.
- Log in via the configured SSO/LDAP provider if accounts are provisioned there.
- Navigate to login page; registration may be invitation-based only.
Defensive patterns
Strategy: fallback
Validate before calling
boolean canRegister = OneDev.getInstance(SettingService.class)
.getSecuritySetting().isEnableSelfRegister();
if (!canRegister) { /* hide sign-up link, show invitation/login path */ } Try / catch
try {
openSignUpPage();
} catch (UnauthenticatedException e) {
// redirect to login page
} Prevention
- Hide sign-up links when self-registration is disabled.
- Discover the registration policy from settings before deep-linking.
- Prefer admin invitations on locked-down instances.
- After toggling enableSelfRegister, update any published links.
When it happens
Trigger: Visiting the sign-up URL (directly or via a 'register' link) while SecuritySetting.enableSelfRegister is false — the default in many hardened installs or after an admin disabled open registration.
Common situations: Bookmarked sign-up page after an admin disabled self-registration; sharing a sign-up link with external users on an invitation-only server; fresh instance configured for SSO/LDAP-only provisioning.
Related errors
AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06).
Data as JSON: /api/errors/ffc3d55b2c73d154.
Report an issue: GitHub.