goharbor/harbor · error
failed to load the key for encryption/decryption: %v
Error message
failed to load the key for encryption/decryption: %v
What it means
Error "failed to load the key for encryption/decryption: %v" thrown in goharbor/harbor.
Source
Thrown at src/pkg/oidc/secret.go:98
var m SecretManager = &defaultManager{
metaDao: dao.NewMetaDao(),
}
// VerifySecret verifies the secret and the token associated with it, it refreshes the token in the DB if it's
// refreshed during the verification. It returns a populated user model based on the ID token associated with the secret.
func (dm *defaultManager) VerifySecret(ctx context.Context, username string, secret string) (*UserInfo, error) {
log.Debugf("Verifying the secret for user: %s", username)
oidcUser, err := dm.metaDao.GetByUsername(ctx, username)
if err != nil {
return nil, fmt.Errorf("failed to get oidc user info, error: %v", err)
}
if oidcUser == nil {
return nil, fmt.Errorf("user is not onboarded as OIDC user, username: %s", username)
}
key, err := keyLoader.encryptKey()
if err != nil {
return nil, fmt.Errorf("failed to load the key for encryption/decryption: %v", err)
}
plainSecret, err := utils.ReversibleDecrypt(oidcUser.Secret, key)
if err != nil {
return nil, fmt.Errorf("failed to decrypt secret from DB: %v", err)
}
if subtle.ConstantTimeCompare([]byte(secret), []byte(plainSecret)) != 1 {
return nil, verifyError(fmt.Errorf("secret mismatch, username: %s", username))
}
tokenStr, err := utils.ReversibleDecrypt(oidcUser.Token, key)
if err != nil {
return nil, verifyError(err)
}
token := &Token{}
err = json.Unmarshal(([]byte)(tokenStr), token)
if err != nil {
return nil, verifyError(err)
}
if !token.Valid() {View on GitHub (pinned to 7b2fd08cc5)
When it happens
Trigger: Thrown at src/pkg/oidc/secret.go:98 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/60ab88808eca01ae.
Report an issue: GitHub.