「untrusted source」エラーの対処 — Claude Codeのマーケットプレイス信頼設定
「Marketplace is registered from an untrusted source」の意味と対処。予約名の一覧、v2.1.205前後の挙動差、strictKnownMarketplacesとの違いをまとめます。
Marketplace "<name>" is registered from an untrusted source — Claude Codeでプラグインマーケットプレイスを読み込もうとしたときにこう出たら、そのマーケットプレイス名がAnthropic専用に予約されているのに、登録元がgithub.com/anthropics/配下のリポジトリではないことを意味します。名前を予約枠から外れた形で使っているマーケットプレイスは、そのマーケットプレイスからインストールしたプラグインごと読み込みが止まります。原因は名前の衝突であって、内容の改ざんではありません。
「untrusted source」エラーの意味
このエラーは、マーケットプレイスのnameフィールドがAnthropic専用に予約されている文字列と一致しているのに、実際の登録元がgithub.com/anthropics/配下のリポジトリではないときに出ます。Claude Codeはこの整合性を、マーケットプレイスを追加するときだけでなく、読み込みや更新のたびに毎回チェックします。
このチェックはv2.1.205で挙動が変わりました。それより前は、マーケットプレイスを追加する瞬間にしか名前を確認していませんでした。予約される前に登録された名前は、そのまま読み込まれ続けていたのです。v2.1.205以降は毎回の読み込みで再チェックするため、新しく何も操作していないのに、ある日から突然このエラーが出るというケースが起こります。原因は自分の設定変更ではなく、予約リストの更新です。バージョンを上げただけでプラグインが軒並み使えなくなったように見えるため、原因不明のまま放置されがちなエラーでもあります。
予約されているマーケットプレイス名
Anthropicのために予約され、サードパーティが使えない名前は次の16個です。
| カテゴリ | 予約名 |
|---|---|
| Anthropic運営マーケットプレイス | 予約名claude-code-marketplace / claude-code-plugins / claude-plugins-official / claude-plugins-community / claude-community |
| Anthropicブランド | 予約名anthropic-marketplace / anthropic-plugins |
| Skills関連 | 予約名agent-skills / anthropic-agent-skills |
| 業種別プラグイン | 予約名knowledge-work-plugins / life-sciences / claude-for-legal / claude-for-financial-services / financial-services-plugins |
| その他 | 予約名first-party-plugins / healthcare |
first-party-pluginsとhealthcareはv2.1.205で新たに予約リストに加わった2つです。それ以前にこの2つの名前で登録していたサードパーティマーケットプレイスは、v2.1.205を境に読み込みが止まりました。突然エラーが出た心当たりがある場合、まずこの2つに該当していないか確認してください。
この予約リストは、Claude Code本体に組み込まれたロジックの一部です。設定ファイルを書き換えても、環境変数を変えても、この判定自体は変わりません。組織のポリシー設定とは独立して、常に同じ16個の名前が保護される仕組みになっています。
予約名の完全一致だけでなく、なりすましと読める名前も対象です。official-claude-pluginsやanthropic-plugins-v2のように、Anthropic運営を装っていると読める名前も同様にブロックされます。予約リストに文字通り載っていなくても、判定はロジック側で行われます。
現在登録されているマーケットプレイスを確認する
エラーが出たとき、どのマーケットプレイスが該当しているか一覧で確認できます。
claude plugin marketplace list --json--jsonを付けると、各エントリのname・source・キャッシュの保存先を示すinstallLocationが返ります。GitHubやgitのソースならrepoまたはurlも含まれるため、nameが予約名と一致していないか、sourceがgithub.com/anthropics/以外を指していないかをここで照合できます。複数のマーケットプレイスを登録している場合、エラーメッセージに出る名前を手がかりにこのリストから該当エントリを探すのが最短です。
対処法
自分がインストール側で、なりすましの意図なく偶然名前が衝突しているだけなら、そのマーケットプレイスを削除して正規の登録元から入れ直します。
claude plugin marketplace remove claude-community
claude plugin marketplace add anthropics/claude-plugins-communityAnthropicが運営するマーケットプレイスの登録元は用途によって2つあります。Anthropic自身がキュレーションするclaude-plugins-officialはanthropics/claude-plugins-officialから、サードパーティ製プラグインが審査を経て並ぶclaude-communityはanthropics/claude-plugins-communityから、それぞれ/plugin marketplace addで追加し直します。名前とリポジトリの組み合わせを間違えると、同じエラーが再発します。
removeは最後に残った登録スコープから削除すると、そこからインストール済みのプラグインもまとめてアンインストールされる点に注意してください。プラグインのキャッシュや設定を残したままマーケットプレイスだけ更新したい場合は、removeではなくclaude plugin marketplace update <name>を使います。ただしこのエラーが出ている状態では、名前と登録元の不一致自体はupdateでは解消しません。一度removeして正しい登録元からaddし直す必要があります。
自分が公開しているマーケットプレイスが該当する場合
このエラーは利用者側だけでなく、マーケットプレイスの公開者側にも影響します。予約前から使っていた名前が新たに予約リストへ加わると、そのマーケットプレイスは自分のリポジトリを一切変更していないのに読み込まれなくなります。
対処は名前の変更以外にありません。marketplace.jsonのnameを予約されていない文字列に変え、既存の利用者には新しい名前で/plugin marketplace addをやり直してもらうよう案内します。名前はマーケットプレイスの公開識別子であるため、ここを変えると利用者側の再登録が必ず必要になります。黙って直しても、利用者のClaude Codeには反映されません。
Claude Desktopの予約名チェックとの違い
紛らわしいことに、名前の予約に関する制約はもう1つ別に存在します。v2.1.221以降のclaude plugin validateを実行すると、マーケットプレイス名がorg・org-provisioned・unknownのいずれかと一致する場合に「Claude Desktopで予約されている」という警告が出ます。これはClaude Codeの読み込みそのものは妨げませんが、Claude Desktopの管理マーケットプレイス同期がそのマーケットプレイス全体を拒否する原因になります。
つまり、名前に関する制約は2層あります。1つはClaude Code自体が読み込み時に強制する今回のエラー、もう1つはClaude Desktop側の同期処理が拒否する別の予約語です。前者はエラーとして起動を止め、後者はvalidate実行時の警告として現れるだけで、Claude Code単体での動作は妨げません。両方を混同すると、片方を直しても症状が消えない、という状況に陥ります。
strictKnownMarketplacesとの違い
似た場面で出る別のエラーと混同しやすいので、仕組みの違いを並べて見分けます。
| 項目 | untrusted source | strictKnownMarketplaces |
|---|---|---|
| 判定主体 | untrusted sourceClaude Code本体の固定ロジック | strictKnownMarketplaces組織管理者がmanaged-settings.jsonで設定 |
| 判定対象 | untrusted sourceマーケットプレイス名と登録元の一致 | strictKnownMarketplaces登録元がallowlistに含まれるか |
| 誰が止められるか | untrusted source誰にも変更不可(予約名は固定) | strictKnownMarketplaces管理者がallowlistを編集すれば変わる |
| 典型的な出現条件 | untrusted source予約名を正規の登録元以外から登録 | strictKnownMarketplaces組織ポリシーで許可されていない登録元を追加しようとした |
strictKnownMarketplacesは組織が任意に設定する許可リストで、管理者の裁量で緩めたり厳しくしたりできます。一方、予約名のチェックはClaude Code自体に組み込まれた固定ルールで、管理者設定の有無に関係なく常に効きます。組織のポリシーを疑う前に、まず名前の予約に該当していないかを確認するほうが早く原因にたどり着けます。組織のマーケットプレイス統制についてはClaude Code組織管理ガイドで扱っています。プラグインとマーケットプレイスの全体像はClaude Codeプラグイン完全ガイドで確認できます。
よくある質問
何も設定を変えていないのに急にエラーが出るのはなぜですか
予約名リストがClaude Codeのバージョンアップで更新された可能性があります。v2.1.205ではfirst-party-pluginsとhealthcareが新たに予約対象へ加わりました。マーケットプレイスの名前がこの2つ、または他の予約名と一致していないか確認してください。
プラグイン自体が改ざんされているということですか
いいえ。このエラーは名前の予約状態だけを見ており、プラグインの中身や配布元の安全性そのものは判定していません。改ざんされたファイルを検知するのは別のエラー(Plugin archive integrity check failed)の役割です。
名前を変えずに使い続ける方法はありますか
ありません。予約名は固定のルールで、利用者側の設定では回避できません。マーケットプレイスの公開者が名前を変えるか、利用者が正規の登録元から入れ直すかのどちらかです。
/plugin marketplace updateで解消しますか
解消しません。updateはカタログの再取得であって、名前の予約判定を変えるものではありません。予約名のまま登録元がAnthropic配下でなければ、更新後も同じエラーが出ます。
予約名リストは今後も増えますか
増える前提で見ておくのが安全です。first-party-pluginsとhealthcareはv2.1.205で追加された実例で、Anthropicが新しい業種別プラグイン群を用意するたびに、その名前が予約対象へ加わる可能性があります。汎用的すぎる名前でマーケットプレイスを公開していると、将来のバージョンアップで同じ事態に遭遇するリスクが残ります。
社内向けのプライベートマーケットプレイスでも起きますか
起きます。予約名のチェックは、マーケットプレイスが公開か非公開かを区別しません。社内リポジトリであっても、nameフィールドに予約語をたまたま選んでしまえば同じエラーが出ます。社内マーケットプレイスを新設するときは、事前にこの16個の予約名との衝突がないか確認しておくと、後からの改名作業を避けられます。
まとめ
「Marketplace is registered from an untrusted source」は、マーケットプレイス名がAnthropic専用に予約されているのに、登録元がgithub.com/anthropics/配下のリポジトリではないときに出るエラーです。v2.1.205以降は毎回の読み込みで再チェックされるため、以前は問題なく動いていたマーケットプレイスが予約リストの更新だけで突然止まることがあります。対処はclaude plugin marketplace removeで一度削除し、正規の登録元から入れ直すことです。自分がマーケットプレイスを公開している側なら、名前を変えて利用者に再登録を案内する以外に解決策はありません。
関連する記事
Claude Code をもっと見る →Claude Code(クロードコード)とは — CLI起点のエージェント型開発ツール
「archive integrity check」の対処 — Claude Codeのプラグイン改ざん検知エラー
「Could not update spend limit」の対処 — Claude Codeの支出上限エラー
「temporarily limiting requests」の意味 — Claude Codeの一時的なサーバー制限
「spawned with zero tools」の対処 — Claude Codeのサブエージェント権限設定
「Agent terminated early」の対処 — Claude Codeのサブエージェント中断エラー