{"record":{"id":"2a7997475d18868a","repo":"router-for-me/CLIProxyAPI","slug":"home-plugins-install-s-w","errorCode":null,"errorMessage":"home plugins: install %s: %w","messagePattern":"home plugins: install (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/homeplugins/sync.go","lineNumber":365,"sourceCode":"\treturn versions, nil\n}\n\nfunc installManifest(ctx context.Context, client sdkpluginstore.Client, manifest sdkpluginstore.Manifest, root string, platform Platform, pluginRuntime PluginRuntime) (sdkpluginstore.InstallResult, error) {\n\tid := strings.TrimSpace(manifest.ID)\n\tif id == \"\" {\n\t\treturn sdkpluginstore.InstallResult{}, fmt.Errorf(\"home plugins: manifest plugin id is empty\")\n\t}\n\tpluginIsBusy := func() bool {\n\t\treturn pluginRuntime != nil && pluginRuntime.PluginBusy(id)\n\t}\n\tresult, errInstall := client.InstallManifest(ctx, manifest, sdkpluginstore.InstallOptions{\n\t\tPluginsDir:   root,\n\t\tGOOS:         platform.GOOS,\n\t\tGOARCH:       platform.GOARCH,\n\t\tPluginLoaded: pluginIsBusy,\n\t})\n\tif errInstall != nil {\n\t\treturn sdkpluginstore.InstallResult{}, fmt.Errorf(\"home plugins: install %s: %w\", id, errInstall)\n\t}\n\treturn result, nil\n}\n\nfunc DeleteWithReport(ctx context.Context, cfg *config.Config, pluginRuntime PluginRuntime, taskID uint, pluginID string) SyncReport {\n\tif ctx == nil {\n\t\tctx = context.Background()\n\t}\n\tplatform := CurrentPlatform()\n\treport := newSyncReport(platform)\n\treport.TaskID = taskID\n\treport.Task = pluginDeleteTaskName\n\treport.Phase = pluginTaskPhaseDelete\n\tpluginID = strings.TrimSpace(pluginID)\n\tstatus := PluginInstallStatus{ID: pluginID}\n\tif errContext := ctx.Err(); errContext != nil {\n\t\tstatus.InstallStatus = pluginInstallStatusFailed\n\t\tstatus.Error = errContext.Error()","sourceCodeStart":347,"sourceCodeEnd":383,"githubUrl":"https://github.com/router-for-me/CLIProxyAPI/blob/78f0c4079e3e6273d65d03b5549cffc898703264/internal/homeplugins/sync.go#L347-L383","documentation":"Error \"home plugins: install %s: %w\" thrown in router-for-me/CLIProxyAPI.","triggerScenarios":"Thrown at internal/homeplugins/sync.go:365 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the wrapped install error for the named plugin.","Verify the plugin artifact is available and checksums match, then retry."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"78f0c4079e3e6273d65d03b5549cffc898703264","analyzedAt":"2026-08-15T12:26:37.444Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}