Tencent/WeKnora · error

failed to discover skills: %w

Error message

failed to discover skills: %w

What it means

Startup wrapper in Manager.Initialize: discoverAllSkills (tenant source discovery or loader.Reload) failed, so no skill metadata cache could be built. This fires at service startup when skills are enabled; it wraps the underlying discovery error verbatim.

Source

Thrown at internal/agent/skills/manager.go:205

// deployment's skills/preloaded directory is not what execute_skill_script
// would find inside the sandbox.
func (m *Manager) discoverAllSkills() ([]*SkillMetadata, error) {
	if m.tenantSource != nil {
		return m.tenantSource.DiscoverSkills()
	}
	return m.loader.Reload()
}

// Initialize discovers all skills and caches their metadata
// This should be called at startup
func (m *Manager) Initialize(ctx context.Context) error {
	if !m.enabled {
		return nil
	}

	metadata, err := m.discoverAllSkills()
	if err != nil {
		return fmt.Errorf("failed to discover skills: %w", err)
	}

	// Filter by allowed skills if specified
	if len(m.allowedSkills) > 0 {
		metadata = m.filterAllowedSkills(metadata)
	}

	m.mu.Lock()
	m.metadataCache = metadata
	m.mu.Unlock()

	return nil
}

// filterAllowedSkills filters metadata to only include allowed skills
func (m *Manager) filterAllowedSkills(metadata []*SkillMetadata) []*SkillMetadata {
	if len(m.allowedSkills) == 0 {
		return metadata

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Inspect the wrapped cause: unreadable skill directories or a failing tenant skill source
  2. Fix directory permissions or tenant source connectivity, then restart/re-initialize
  3. If skills are optional, consider disabling skills to let startup proceed
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at internal/agent/skills/manager.go:205 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/a0dec6fe376926a2. Report an issue: GitHub.