sipeed/picoclaw · error

failed to read security config: %w

Error message

failed to read security config: %w

What it means

Error "failed to read security config: %w" thrown in sipeed/picoclaw.

Source

Thrown at pkg/config/migration.go:422

func loadConfigMap(path string) (map[string]any, error) {
	var m1, m2 map[string]any
	data, err := os.ReadFile(path)
	if err != nil {
		if os.IsNotExist(err) {
			return m1, nil
		}
		return nil, fmt.Errorf("failed to read config: %w", err)
	}
	if err = json.Unmarshal(data, &m1); err != nil {
		return nil, wrapJSONError(data, err, "config.json")
	}
	secPath := securityPath(path)
	data, err = os.ReadFile(secPath)
	if err != nil {
		if os.IsNotExist(err) {
			return m1, nil
		}
		return nil, fmt.Errorf("failed to read security config: %w", err)
	}
	if err = yaml.Unmarshal(data, &m2); err != nil {
		return nil, fmt.Errorf("failed to parse security config: %w", err)
	}
	if m2["web"] != nil || m2["skills"] != nil {
		m3 := make(map[string]any)
		if m2["web"] != nil {
			m3["web"] = m2["web"]
			delete(m2, "web")
		}
		if m2["skills"] != nil {
			m3["skills"] = m2["skills"]
			delete(m2, "skills")
			if m, ok := m3["skills"].(map[string]any); ok {
				if m["clawhub"] != nil {
					m["registries"] = map[string]any{"clawhub": m["clawhub"]}
					delete(m, "clawhub")
				}

View on GitHub (pinned to 49183d7e8d)

When it happens

Trigger: Thrown at pkg/config/migration.go:422 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sipeed/picoclaw@49183d7e8d (2026-08-15). Data as JSON: /api/errors/783f982ce4ac9000. Report an issue: GitHub.