Skip to content

copilot plugin update fails for directly-installed plugins: source field not persisted during install #1885

Closed

Description

@lossyrob

Bug Description

copilot plugin update <name> fails with Plugin "<name>" has no source information and cannot be updated for plugins installed directly from a GitHub repository (not via a marketplace).

Duplicate of #1290

Steps to Reproduce

copilot plugin install lossyrob/phased-agent-workflow
copilot plugin update paw-workflow

Expected Behavior

The update command should re-fetch the plugin from the original source repository and update the installed version.

Actual Behavior

Failed to update plugin: Plugin "paw-workflow" has no source information and cannot be updated

Observations

When a plugin is installed directly from owner/repo, the install source is not persisted to ~/.copilot/config.json. The installed_plugins entry has no source field. The update command then can't determine where to fetch from.

Interestingly, if you manually add the source to the config and successfully update once, subsequent updates work — suggesting the update code path does persist the source, but the initial install path does not.

Workaround

Manually add the source to ~/.copilot/config.json:

{
  "name": "your-plugin",
  "marketplace": "",
  "source": {"source": "github", "repo": "owner/repo"},
  ...
}

Environment

  • CLI version: 0.0.422-0 (also reproduced on 1.0.2)
  • OS: macOS (arm64)

Activity

  1. lossyrob commented on Mar 7, 2026

    @lossyrob
    Author

    Duplicate of #1290 — same root cause (saveInstalledPlugin omits source field). Adding root cause analysis as a comment there instead.

  2. webneers commented on Mar 8, 2026

    @webneers

    @lossyrob both #1885 and #1290 are closed now but none of these mention a PR or real fix. Only #1885 mentions a workaround? When will the workaround become automatically working correctly in CLI?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions