{"record":{"id":"dda6cee0d19eba78","repo":"router-for-me/CLIProxyAPI","slug":"home-plugins-plugin-sync-response-expired","errorCode":null,"errorMessage":"home plugins: plugin sync response expired","messagePattern":"home plugins: plugin sync response expired","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/homeplugins/sync.go","lineNumber":221,"sourceCode":"\t\t}\n\t}()\n\tplatform := NormalizePlatform(CurrentPlatform())\n\treport := newSyncReport(platform)\n\tif cfg == nil || !cfg.Home.Enabled || !cfg.Plugins.Enabled {\n\t\tfinishReport(&report, nil)\n\t\treturn report, nil\n\t}\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\taddInstalledVersionStatuses(&report, cfg, root, installedVersions)\n\tvar syncErrors []error\n\tfor index := range items {\n\t\tif !time.Now().UTC().Before(expiresAt) {\n\t\t\terrExpired := fmt.Errorf(\"home plugins: plugin sync response expired\")\n\t\t\tsyncErrors = append(syncErrors, errExpired)\n\t\t\tbreak\n\t\t}\n\t\titem := &items[index]\n\t\tmanifest := item.Manifest\n\t\tstatus := pluginStatusFromManifest(manifest)\n\t\tresult, errInstall := installResolvedManifest(ctx, cfg, manifest, item.Auth, expiresAt, root, platform, pluginRuntime)\n\t\titem.Clear()\n\t\tif errInstall != nil {\n\t\t\tstatus.InstallStatus = pluginInstallStatusFailed\n\t\t\tstatus.Error = errInstall.Error()\n\t\t\tupsertPluginInstallStatus(&report, status)\n\t\t\tsyncErrors = append(syncErrors, errInstall)\n\t\t\tcontinue\n\t\t}\n\t\tstatus.Path = strings.TrimSpace(result.Path)\n\t\tstatus.Skipped = result.Skipped\n\t\tstatus.Overwritten = result.Overwritten","sourceCodeStart":203,"sourceCodeEnd":239,"githubUrl":"https://github.com/router-for-me/CLIProxyAPI/blob/78f0c4079e3e6273d65d03b5549cffc898703264/internal/homeplugins/sync.go#L203-L239","documentation":"Error \"home plugins: plugin sync response expired\" thrown in router-for-me/CLIProxyAPI.","triggerScenarios":"Thrown at internal/homeplugins/sync.go:221 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Request a fresh plugin sync response from the home cluster.","Check clock skew between the node and the home cluster if expiry recurs."],"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"}