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 metadataView on GitHub (pinned to 988cbb0330)
Solutions
- Inspect the wrapped cause: unreadable skill directories or a failing tenant skill source
- Fix directory permissions or tenant source connectivity, then restart/re-initialize
- 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.