Tencent/WeKnora · error

tenant ID is required

Error message

tenant ID is required

What it means

CreateProvider (web search provider service) requires a non-zero tenant ID since provider entities are tenant-scoped; a zero value means the caller lacks workspace context. Pure input guard before touching the repository.

Source

Thrown at internal/application/service/web_search_provider.go:26

	"github.com/Tencent/WeKnora/internal/logger"
	"github.com/Tencent/WeKnora/internal/types"
	"github.com/Tencent/WeKnora/internal/types/interfaces"
)

// webSearchProviderService implements interfaces.WebSearchProviderService
type webSearchProviderService struct {
	repo interfaces.WebSearchProviderRepository
}

// NewWebSearchProviderService creates a new web search provider service
func NewWebSearchProviderService(repo interfaces.WebSearchProviderRepository) interfaces.WebSearchProviderService {
	return &webSearchProviderService{repo: repo}
}

// CreateProvider creates a new web search provider configuration.
func (s *webSearchProviderService) CreateProvider(ctx context.Context, provider *types.WebSearchProviderEntity) error {
	if provider.TenantID == 0 {
		return fmt.Errorf("tenant ID is required")
	}

	if !isValidProviderType(provider.Provider) {
		return fmt.Errorf("invalid provider type: %s", provider.Provider)
	}

	if err := validateProviderParameters(provider.Provider, provider.Parameters); err != nil {
		return err
	}

	if provider.IsDefault {
		if err := s.repo.ClearDefault(ctx, provider.TenantID, ""); err != nil {
			logger.Warnf(ctx, "Failed to clear default providers: %v", err)
		}
	}

	logger.Infof(ctx, "Creating web search provider: tenant=%d, name=%s, type=%s", provider.TenantID, provider.Name, provider.Provider)
	return s.repo.Create(ctx, provider)

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Pass the authenticated tenant ID into CreateProvider
  2. Ensure tenant context middleware runs before the handler
  3. Return 400/401 so the client authenticates properly
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/application/service/web_search_provider.go:26 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/01d653ef9bef6fa2. Report an issue: GitHub.