Tencent/WeKnora · error

workspace ID not found in context

Error message

workspace ID not found in context

What it means

resolveProvider cannot find a tenant/workspace ID in the request context when loading a provider entity by ID. Provider entities are tenant-scoped, so the DB lookup is impossible without it — usually missing auth middleware or context propagation.

Source

Thrown at internal/application/service/web_search.go:97

	// Apply blacklist filtering
	results = s.filterBlacklist(results, config.Blacklist)

	return results, nil
}

// resolveProvider resolves a WebSearchProvider instance from either:
// 1. A provider entity ID (new path) — loads from DB, creates via registry
// 2. The deprecated config.Provider field (backward compatibility) — creates with empty params
func (s *WebSearchService) resolveProvider(
	ctx context.Context,
	providerID string,
	cfg *types.WebSearchConfig,
) (interfaces.WebSearchProvider, error) {
	// New path: load provider entity from DB
	if providerID != "" {
		tenantID, ok := types.TenantIDFromContext(ctx)
		if !ok {
			return nil, fmt.Errorf("workspace ID not found in context")
		}

		entity, err := s.providerRepo.GetByID(ctx, tenantID, providerID)
		if err != nil {
			return nil, fmt.Errorf("failed to load web search provider %s: %w", providerID, err)
		}
		if entity == nil {
			return nil, fmt.Errorf("web search provider not found: %s", providerID)
		}

		params := mergeProxyFromWebSearchConfig(entity.Parameters, cfg)
		provider, err := s.registry.CreateProvider(string(entity.Provider), params)
		if err != nil {
			return nil, fmt.Errorf("failed to create provider %s (%s): %w", entity.Name, entity.Provider, err)
		}
		return provider, nil
	}

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Ensure tenant-auth middleware runs before web search handling
  2. Propagate the tenant ID into the context on internal call paths
  3. Only use the providerID path from tenant-scoped requests
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/application/service/web_search.go:97 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/c34e16773912ff3c. Report an issue: GitHub.