Tencent/WeKnora · error

user already exists

Error message

user already exists

What it means

Sentinel ErrUserAlreadyExists returned by user creation/registration when a user with the same unique key (id, email, or username) already exists — a duplicate-account guard, typically surfaced as 409 to clients.

Source

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

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 {

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Use a different email/username, or sign in to the existing account
  2. If this is account recovery, route to the existing account instead of creating a new one
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at internal/application/repository/user.go:15 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/14f8128f0c6bb9e9. Report an issue: GitHub.