router-for-me/CLIProxyAPI · error
home plugins: manifest plugin id is empty
Error message
home plugins: manifest plugin id is empty
What it means
Error "home plugins: manifest plugin id is empty" thrown in router-for-me/CLIProxyAPI.
Source
Thrown at internal/homeplugins/sync.go:353
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 {
return pluginRuntime != nil && pluginRuntime.PluginBusy(id)
}
result, errInstall := client.InstallManifest(ctx, manifest, sdkpluginstore.InstallOptions{
PluginsDir: root,
GOOS: platform.GOOS,
GOARCH: platform.GOARCH,
PluginLoaded: pluginIsBusy,
})
if errInstall != nil {
return sdkpluginstore.InstallResult{}, fmt.Errorf("home plugins: install %s: %w", id, errInstall)
}
return result, nil
}
func DeleteWithReport(ctx context.Context, cfg *config.Config, pluginRuntime PluginRuntime, taskID uint, pluginID string) SyncReport {
if ctx == nil {View on GitHub (pinned to 78f0c4079e)
Solutions
- Fix the store manifest so every plugin entry has a non-empty id.
- Re-fetch the manifest from the plugin store if it is corrupted.
When it happens
Trigger: Thrown at internal/homeplugins/sync.go:353 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/c867a40063a21978.
Report an issue: GitHub.