Tencent/WeKnora · error

token not found

Error message

token not found

What it means

Sentinel ErrTokenNotFound returned by GetTokenByValue when no token row matches the given value (gorm.ErrRecordNotFound mapped) — the token is unknown, expired-and-purged, or fabricated. Used in auth flows to reject bad credentials.

Source

Thrown at internal/application/repository/user.go:16

package repository

import (
	"context"
	"errors"

	"github.com/Tencent/WeKnora/internal/types"
	"github.com/Tencent/WeKnora/internal/types/interfaces"
	"gorm.io/gorm"
	"gorm.io/gorm/clause"
)

var (
	ErrUserNotFound       = errors.New("user not found")
	ErrUserAlreadyExists  = errors.New("user already exists")
	ErrTokenNotFound      = errors.New("token not found")
	ErrCannotRevokeSelf   = errors.New("cannot revoke your own system admin privileges")
	ErrLastSystemAdmin    = errors.New("cannot revoke the last remaining system administrator")
	ErrUserNotSystemAdmin = errors.New("user is not a system administrator")
)

// userRepository implements user repository interface
type userRepository struct {
	db *gorm.DB
}

// NewUserRepository creates a new user repository
func NewUserRepository(db *gorm.DB) interfaces.UserRepository {
	return &userRepository{db: db}
}

// CreateUser creates a user
func (r *userRepository) CreateUser(ctx context.Context, user *types.User) error {
	// users.tenant_id is nullable in both PostgreSQL and SQLite. GORM would

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Reject the credential (401/404) and require re-authentication
  2. Do not retry the same token; verify the client stored the correct value
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at internal/application/repository/user.go:16 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02). Data as JSON: /api/errors/6e859d47c5b70d7d. Report an issue: GitHub.