vxcontrol/pentagi · error
unexpected signing method: %v
Error message
unexpected signing method: %v
What it means
Error "unexpected signing method: %v" thrown in vxcontrol/pentagi.
Source
Thrown at backend/pkg/server/auth/api_token_jwt.go:43
return models.APITokenClaims{
TokenID: tokenID,
RID: rid,
UID: uid,
UHASH: uhash,
RegisteredClaims: jwt.RegisteredClaims{
ExpiresAt: jwt.NewNumericDate(now.Add(time.Duration(ttl) * time.Second)),
IssuedAt: jwt.NewNumericDate(now),
Subject: "api_token",
},
}
}
func ValidateAPIToken(tokenString, globalSalt string) (*models.APITokenClaims, error) {
var claims models.APITokenClaims
token, err := jwt.ParseWithClaims(tokenString, &claims, func(token *jwt.Token) (any, error) {
// verify signing algorithm to prevent "alg: none"
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
}
return MakeJWTSigningKey(globalSalt), nil
})
if err != nil {
if errors.Is(err, jwt.ErrTokenMalformed) {
return nil, fmt.Errorf("token is malformed")
} else if errors.Is(err, jwt.ErrTokenExpired) || errors.Is(err, jwt.ErrTokenNotValidYet) {
return nil, fmt.Errorf("token is either expired or not active yet")
} else {
return nil, fmt.Errorf("token invalid: %w", err)
}
}
if !token.Valid {
return nil, fmt.Errorf("token is invalid")
}
return &claims, nilView on GitHub (pinned to ea665308ba)
When it happens
Trigger: Thrown at backend/pkg/server/auth/api_token_jwt.go:43 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of vxcontrol/pentagi@ea665308ba (2026-09-01).
Data as JSON: /api/errors/c737d87cf7d2633b.
Report an issue: GitHub.