github / github/copilot-cli

plugin install fails with Access is denied (os error 5) on Windows for all sources

オープン
#4,151 コメント 3 件 リアクション 3 件 担当者 0 名 GitHub で見る
area:platform-windows area:plugins
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

### Bug Description
`copilot plugin install` fails 100% of the time on Windows 11 with:

```
Failed to install plugin: Error: Failed to install plugin: Access is denied. (os error 5)
```

It fails for a marketplace source (`azure@azure-skills`), a direct GitHub repo, **and** a local directory source — so it is not specific to one plugin or fetch method.

### Version
- GitHub Copilot CLI: **1.0.71** (also seen on 1.0.70)
- OS: **Windows 11 Enterprise 10.0.26200, x64**
- git: 2.50.1.windows.1

### Steps to reproduce
1. `copilot plugin marketplace add microsoft/azure-skills`
2. `copilot plugin install azure@azure-skills`
3. Fails with `Access is denied. (os error 5)`

### Expected behavior
Plugin installs successfully.

### Actual behavior
Install aborts. It creates an **empty** target folder under `~/.copilot/installed-plugins/` (e.g. `azure-skills` and `_direct`) then fails on its first file operation, before any file is written.

### Investigation / ruled out
- **Not permissions/sandbox:** fails identically when run directly as the real user with Full Control over the entire `~/.copilot` tree.
- **Not Controlled Folder Access:** `Get-MpPreference` shows `EnableControlledFolderAccess = 0`.
- **Not git:** `git clone --depth 1 https://github.com/microsoft/azure-skills.git` succeeds (1552 files).
- **Not a lock:** the leftover target folder can be freely renamed/deleted.
- Plain create/write/delete under `installed-plugins` and `%TEMP%` all succeed as the same user.
- Fails for both remote and local sources, immediately after the target dir is created.
- No detail is written to `~/.copilot/logs`; the message is stderr-only and double-wrapped, hiding the offending path.

### Suspected cause
A native filesystem op in the install/cache pipeline (likely `remove_dir_all`/rename/copy) returning Windows `ERROR_ACCESS_DENIED` — a common Rust-on-Windows failure against read-only files (e.g. git pack objects). **Surfacing the actual path in the error would greatly help.**

### Workaround
`copilot --plugin-dir ` loads the plugin fine, confirming only the install/copy path is broken.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

marketplace、直接のリポジトリ、ローカルディレクトリのインストールコマンドで失敗を再現し、ターゲットディレクトリが作成された直後からインストール/キャッシュパイプラインを追跡します。ERROR_ACCESS_DENIEDを返す最初のファイルシステム操作を特定し、そのパスを示します。完了条件は、各ソースでWindows上のプラグインインストールが成功し、失敗した場合はエラーによって問題のパスが特定されることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
git, rust
領域
cli
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
55/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。