goharbor/harbor · error
unable to recover username for auto onboard, username claim:
Error message
unable to recover username for auto onboard, username claim: %s
What it means
Error "unable to recover username for auto onboard, username claim: %s" thrown in goharbor/harbor.
Source
Thrown at src/core/controllers/oidc.go:186
oc.SendInternalServerError(err)
return
}
u, err := ctluser.Ctl.GetBySubIss(ctx, info.Subject, info.Issuer)
if errors.IsNotFoundErr(err) { // User is not onboarded, kickoff the onboard flow
// Recover the username from d.Username by default
username := info.Username
// Fix blanks in username
username = strings.Replace(username, " ", "_", -1)
oidcSettings, err := config.OIDCSetting(ctx)
if err != nil {
oc.SendInternalServerError(err)
return
}
// If automatic onboard is enabled, skip the onboard page
if oidcSettings.AutoOnboard {
log.Debug("Doing automatic onboarding\n")
if username == "" {
oc.SendInternalServerError(fmt.Errorf("unable to recover username for auto onboard, username claim: %s",
oidcSettings.UserClaim))
return
}
userRec, onboarded := userOnboard(ctx, oc, info, username, tokenBytes)
if !onboarded {
log.Error("User not onboarded\n")
return
}
log.Debug("User automatically onboarded\n")
u = userRec
} else {
if err := oc.SetSession(userInfoKey, string(ouDataStr)); err != nil {
log.Errorf("failed to set session for key: %s, error: %v", userInfoKey, err)
oc.SendInternalServerError(err)
return
}
oc.Controller.Redirect(fmt.Sprintf("/oidc-onboard?username=%s&redirect_url=%s", username, redirectURLStr), http.StatusFound)
// Once redirected, no further actions are doneView on GitHub (pinned to 7b2fd08cc5)
When it happens
Trigger: Thrown at src/core/controllers/oidc.go:186 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of goharbor/harbor@7b2fd08cc5 (2026-08-16).
Data as JSON: /api/errors/28f1991c338f6159.
Report an issue: GitHub.