{"record":{"id":"a989d2b7ca87cb35","repo":"router-for-me/CLIProxyAPI","slug":"home-plugins-goos-is-required","errorCode":null,"errorMessage":"home plugins: goos is required","messagePattern":"home plugins: goos is required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/homeplugins/sync.go","lineNumber":133,"sourceCode":"}\n\nfunc SyncPlatform(ctx context.Context, cfg *config.Config, pluginRuntime PluginRuntime, platform Platform) error {\n\t_, errSync := SyncPlatformWithReport(ctx, cfg, pluginRuntime, platform)\n\treturn errSync\n}\n\nfunc SyncWithReport(ctx context.Context, cfg *config.Config, pluginRuntime PluginRuntime) (SyncReport, error) {\n\treturn SyncPlatformWithReport(ctx, cfg, pluginRuntime, CurrentPlatform())\n}\n\nfunc SyncPlatformWithReport(ctx context.Context, cfg *config.Config, pluginRuntime PluginRuntime, platform Platform) (SyncReport, error) {\n\tif cfg == nil || !cfg.Home.Enabled || !cfg.Plugins.Enabled {\n\t\treturn newSyncReport(platform), nil\n\t}\n\tplatform = NormalizePlatform(platform)\n\treport := newSyncReport(platform)\n\tif platform.GOOS == \"\" {\n\t\terrPlatform := fmt.Errorf(\"home plugins: goos is required\")\n\t\tfinishReport(&report, errPlatform)\n\t\treturn report, errPlatform\n\t}\n\tif platform.GOARCH == \"\" {\n\t\terrPlatform := fmt.Errorf(\"home plugins: goarch is required\")\n\t\tfinishReport(&report, errPlatform)\n\t\treturn report, errPlatform\n\t}\n\treport.Platform = platform\n\troot, errResolvePluginsDir := config.ResolvePluginsDir(cfg.Plugins.Dir)\n\tif errResolvePluginsDir != nil {\n\t\terrPluginsDir := fmt.Errorf(\"home plugins: %w\", errResolvePluginsDir)\n\t\tfinishReport(&report, errPluginsDir)\n\t\treturn report, errPluginsDir\n\t}\n\tclient := newPluginStoreClient(cfg)\n\tvar syncErrors []error\n\tids := make([]string, 0, len(cfg.Plugins.Configs))","sourceCodeStart":115,"sourceCodeEnd":151,"githubUrl":"https://github.com/router-for-me/CLIProxyAPI/blob/78f0c4079e3e6273d65d03b5549cffc898703264/internal/homeplugins/sync.go#L115-L151","documentation":"Error \"home plugins: goos is required\" thrown in router-for-me/CLIProxyAPI.","triggerScenarios":"Thrown at internal/homeplugins/sync.go:133 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the goos value (target operating system) before syncing home plugins.","Verify the runtime OS detection or provide the value explicitly."],"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-15T22:17:37.221Z"}