router-for-me/CLIProxyAPI · error

home plugins: discover installed plugin %s: %w

Error message

home plugins: discover installed plugin %s: %w

What it means

Error "home plugins: discover installed plugin %s: %w" thrown in router-for-me/CLIProxyAPI.

Source

Thrown at internal/homeplugins/sync.go:337

func installResolvedManifest(ctx context.Context, cfg *config.Config, manifest sdkpluginstore.Manifest, auth []sdkpluginstore.ResolvedAuthConfig, expiresAt time.Time, root string, platform Platform, pluginRuntime PluginRuntime) (sdkpluginstore.InstallResult, error) {
	client := newResolvedPluginStoreClient(cfg, auth, expiresAt)
	defer client.ClearAuth()
	return installManifest(ctx, client, manifest, root, platform, pluginRuntime)
}

func InstalledVersions(cfg *config.Config) (map[string]string, error) {
	if cfg == nil {
		return map[string]string{}, nil
	}
	root, errResolvePluginsDir := config.ResolvePluginsDir(cfg.Plugins.Dir)
	if errResolvePluginsDir != nil {
		return nil, fmt.Errorf("home plugins: %w", errResolvePluginsDir)
	}
	versions := make(map[string]string, len(cfg.Plugins.Configs))
	for id := range cfg.Plugins.Configs {
		files, errFiles := pluginFileInfos(root, id)
		if errFiles != nil {
			return nil, fmt.Errorf("home plugins: discover installed plugin %s: %w", id, errFiles)
		}
		if len(files) == 0 {
			continue
		}
		version := strings.TrimSpace(files[0].Version)
		if version != "" {
			versions[strings.TrimSpace(id)] = version
		}
	}
	return versions, nil
}

func installManifest(ctx context.Context, client sdkpluginstore.Client, manifest sdkpluginstore.Manifest, root string, platform Platform, pluginRuntime PluginRuntime) (sdkpluginstore.InstallResult, error) {
	id := strings.TrimSpace(manifest.ID)
	if id == "" {
		return sdkpluginstore.InstallResult{}, fmt.Errorf("home plugins: manifest plugin id is empty")
	}
	pluginIsBusy := func() bool {

View on GitHub (pinned to 78f0c4079e)

Solutions

  1. Check the wrapped error for why the installed plugin could not be discovered.
  2. Verify the plugin files exist in the plugins directory and are readable.

When it happens

Trigger: Thrown at internal/homeplugins/sync.go:337 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of router-for-me/CLIProxyAPI@78f0c4079e (2026-08-15). Data as JSON: /api/errors/33bad7bbb5e897f0. Report an issue: GitHub.