router-for-me/CLIProxyAPI · error

home plugins: plugin sync response expired

Error message

home plugins: plugin sync response expired

What it means

Error "home plugins: plugin sync response expired" thrown in router-for-me/CLIProxyAPI.

Source

Thrown at internal/homeplugins/sync.go:221

		}
	}()
	platform := NormalizePlatform(CurrentPlatform())
	report := newSyncReport(platform)
	if cfg == nil || !cfg.Home.Enabled || !cfg.Plugins.Enabled {
		finishReport(&report, nil)
		return report, nil
	}
	root, errResolvePluginsDir := config.ResolvePluginsDir(cfg.Plugins.Dir)
	if errResolvePluginsDir != nil {
		errPluginsDir := fmt.Errorf("home plugins: %w", errResolvePluginsDir)
		finishReport(&report, errPluginsDir)
		return report, errPluginsDir
	}
	addInstalledVersionStatuses(&report, cfg, root, installedVersions)
	var syncErrors []error
	for index := range items {
		if !time.Now().UTC().Before(expiresAt) {
			errExpired := fmt.Errorf("home plugins: plugin sync response expired")
			syncErrors = append(syncErrors, errExpired)
			break
		}
		item := &items[index]
		manifest := item.Manifest
		status := pluginStatusFromManifest(manifest)
		result, errInstall := installResolvedManifest(ctx, cfg, manifest, item.Auth, expiresAt, root, platform, pluginRuntime)
		item.Clear()
		if errInstall != nil {
			status.InstallStatus = pluginInstallStatusFailed
			status.Error = errInstall.Error()
			upsertPluginInstallStatus(&report, status)
			syncErrors = append(syncErrors, errInstall)
			continue
		}
		status.Path = strings.TrimSpace(result.Path)
		status.Skipped = result.Skipped
		status.Overwritten = result.Overwritten

View on GitHub (pinned to 78f0c4079e)

Solutions

  1. Request a fresh plugin sync response from the home cluster.
  2. Check clock skew between the node and the home cluster if expiry recurs.

When it happens

Trigger: Thrown at internal/homeplugins/sync.go:221 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/dda6cee0d19eba78. Report an issue: GitHub.