3957 Ошибки плагинов3957 Ошибки плагинов
3958</h2>3958</h2>
3959 3959
3960Эти ошибки возникают из [конфигурации плагинов](/docs/ru/plugins/overview) и [конфигурации маркетплейса](/docs/ru/plugins/overview). Для проблем с плагинами, которые не выдают одно из сообщений на этой странице, например маркетплейс, который не загружается, или плагин, который устанавливается, но не отображается, см. [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting).3960Эти ошибки связаны с конфигурацией [плагинов](/docs/ru/plugins/overview) и [маркетплейсов](/docs/ru/plugins/overview). Проблемы с плагинами, которые не приводят ни к одному из сообщений на этой странице, например URL маркетплейса, который не загружается, или плагин, который устанавливается, но не появляется, описаны в разделе [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting).
3961 3961
3962<h3 id="plugin-eval-is-currently-in-early-access">3962<h3 id="plugin-eval-is-currently-in-early-access">
3963 plugin eval is currently in early access3963 plugin eval is currently in early access
3964</h3>3964</h3>
3965 3965
3966Вы запустили [`claude plugin eval`](/docs/ru/plugin-evals) или `claude plugin eval init`, и команда завершилась с кодом 1 с одним из этих сообщений перед выполнением каких-либо действий:3966Вы запустили [`claude plugin eval`](/docs/ru/plugin-evals) или `claude plugin eval init`, и команда завершилась с кодом 1 с одним из этих сообщений, ничего не выполнив:
3967 3967
3968```text theme={null}3968```text theme={null}
3969`plugin eval` is currently in early access3969`plugin eval` is currently in early access
3973`plugin eval` is currently unavailable3973`plugin eval` is currently unavailable
3974```3974```
3975 3975
3976Первое сообщение означает, что ваша сборка старше v2.1.269, первой версии, где команда общедоступна. Второе означает, что Anthropic отключила команду на стороне сервера; ничто на вашем компьютере не включит её обратно.3976Первое сообщение означает, что ваша сборка старше v2.1.269 — первой версии, в которой команда общедоступна. Второе означает, что Anthropic отключила команду на стороне сервера; ничто на вашем компьютере не включит её обратно.
3977 3977
3978**Что делать:**3978**Что делать:**
3979 3979
3980* Запустите `claude --version`, затем `claude update`, и запустите команду снова в новом сеансе. См. [требования для plugin evals](/docs/ru/plugin-evals#requirements)3980* Выполните `claude --version`, затем `claude update` и снова запустите команду в новой сессии. См. [требования к оценкам плагинов](/docs/ru/plugin-evals#requirements)
3981* Если вы видите второе сообщение в текущей сборке, попробуйте снова позже после ещё одного `claude update`3981* Если вы видите второе сообщение в актуальной сборке, повторите попытку позже после очередного `claude update`
3982 3982
3983<h3 id="marketplace-is-registered-from-an-untrusted-source">3983<h3 id="marketplace-is-registered-from-an-untrusted-source">
3984 Marketplace is registered from an untrusted source3984 Маркетплейс зарегистрирован из недоверенного источника
3985</h3>3985</h3>
3986 3986
3987Маркетплейс зарегистрирован под именем, которое [зарезервировано для официальных маркетплейсов Anthropic](/docs/ru/plugins/marketplace-reference#marketplace-file), но его зарегистрированный источник не является репозиторием GitHub `anthropics`. Claude Code повторно проверяет зарезервированные имена каждый раз при загрузке или обновлении маркетплейса, поэтому маркетплейс и плагины, установленные из него, перестают загружаться. До версии v2.1.205 запись, зарегистрированная до того, как её имя было зарезервировано, продолжала загружаться.3987Маркетплейс зарегистрирован под именем, которое [зарезервировано для официальных маркетплейсов Anthropic](/docs/ru/plugins/marketplace-reference#marketplace-file), но его зарегистрированный источник не является репозиторием GitHub организации `anthropics`. Claude Code заново проверяет зарезервированные имена каждый раз при загрузке или обновлении маркетплейса, поэтому маркетплейс и установленные из него плагины перестают загружаться. До v2.1.205 запись, зарегистрированная до того, как её имя стало зарезервированным, продолжала загружаться.
3988 3988
3989```text theme={null}3989```text theme={null}
3990Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.3990Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.
3991```3991```
3992 3992
3993Для маркетплейса, источник которого не является репозиторием GitHub или URL-адресом Git, например локальной директорией, среднее предложение читается как `can only be used with GitHub sources from the 'anthropics' organization` вместо этого. `claude plugin marketplace add` выполняет ту же проверку и отказывает зарезервированному имени с `Failed to add marketplace:`, за которым следует то же предложение о зарезервированном имени.3993Для маркетплейса, источник которого не является репозиторием GitHub или Git URL, например для локального каталога, среднее предложение вместо этого звучит как `can only be used with GitHub sources from the 'anthropics' organization`. `claude plugin marketplace add` выполняет ту же проверку и отклоняет зарезервированное имя с сообщением `Failed to add marketplace:`, за которым следует то же предложение о зарезервированном имени.
3994 3994
3995**Что делать:**3995**Что делать:**
3996 3996
3997* Если маркетплейс уже зарегистрирован, запустите `claude plugin marketplace remove <name>`, затем добавьте его снова из официального репозитория `github.com/anthropics`3997* Если маркетплейс уже зарегистрирован, выполните `claude plugin marketplace remove <name>`, затем добавьте его снова из официального репозитория `github.com/anthropics`
3998* Если вы публикуете сторонний маркетплейс, который использовал это имя до того, как оно было зарезервировано, переименуйте его и попросите пользователей добавить его снова из вашего источника3998* Если вы публикуете сторонний маркетплейс, который использовал это имя до того, как оно стало зарезервированным, переименуйте его и попросите пользователей добавить его заново из вашего источника
3999* См. список зарезервированных имён в разделе [Marketplace schema](/docs/ru/plugins/marketplace-reference#marketplace-file)3999* Список зарезервированных имён см. в разделе [Схема маркетплейса](/docs/ru/plugins/marketplace-reference#marketplace-file)
4000 4000
4001<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">4001<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">
4002 Marketplace name is another spelling of a reserved name4002 Имя маркетплейса — другое написание зарезервированного имени
4003</h3>4003</h3>
4004 4004
4005Имя маркетплейса само по себе не является зарезервированным именем, но Claude Code рассматривает его как другое написание одного из них. [Зарезервированные имена](/docs/ru/plugins/marketplace-reference#reserved-name-spellings) перечисляют, какие написания считаются зарезервированным именем. Claude Code отказывает такому имени при добавлении маркетплейса:4005Имя маркетплейса само по себе не является зарезервированным, но Claude Code считает его другим написанием зарезервированного имени. В разделе [Зарезервированные имена](/docs/ru/plugins/marketplace-reference#reserved-name-spellings) перечислено, какие написания считаются зарезервированным именем. Claude Code отклоняет такое имя при добавлении маркетплейса:
4006 4006
4007```text theme={null}4007```text theme={null}
4008Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.4008Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.
4009```4009```
4010 4010
4011Когда маркетплейс уже зарегистрирован под таким именем, его запись перестаёт загружаться, и `/plugin`, `claude plugin install` и `claude plugin update` предупреждают:4011Если маркетплейс уже зарегистрирован под таким именем, его запись перестаёт загружаться, а `/plugin`, `claude plugin install` и `claude plugin update` выводят предупреждение:
4012 4012
4013```text wrap theme={null}4013```text wrap theme={null}
4014known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins4014known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins
4015```4015```
4016 4016
4017Когда имя требует кавычек оболочки, отказ во время добавления читается как `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`4017Если имя потребовало бы экранирования в оболочке, отказ при добавлении звучит как `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`
4018 4018
4019**Что делать:**4019**Что делать:**
4020 4020
4021* Переименуйте маркетплейс на имя, которое не соответствует зарезервированному имени, и добавьте его снова4021* Переименуйте маркетплейс так, чтобы имя не было написанием зарезервированного имени, и добавьте его снова
4022* Для предупреждения об игнорируемой записи запустите команду `claude plugin marketplace remove`, которую оно даёт, или удалите запись из `~/.claude/plugins/known_marketplaces.json`4022* В случае предупреждения об игнорируемой записи выполните указанную в нём команду `claude plugin marketplace remove` или удалите запись из `~/.claude/plugins/known_marketplaces.json`
4023 4023
4024<h3 id="claude-code-refuses-the-marketplace-name">4024<h3 id="claude-code-refuses-the-marketplace-name">
4025 Claude Code refuses the marketplace name4025 Claude Code отклоняет имя маркетплейса
4026</h3>4026</h3>
4027 4027
4028Имя зарегистрированного маркетплейса [выдаёт себя за официальный маркетплейс Anthropic](/docs/ru/plugins/marketplace-reference#reserved-names) в соответствии с правилами, которые перечисляет этот раздел.4028Имя зарегистрированного маркетплейса [выдаёт себя за официальный маркетплейс Anthropic](/docs/ru/plugins/marketplace-reference#reserved-names) по правилам, перечисленным в том разделе.
4029 4029
4030Если маркетплейс был зарегистрирован под таким именем до того, как проверка его заблокировала, маркетплейс и плагины, установленные из него, перестают загружаться, потому что Claude Code проверяет имя каждый раз при чтении каталога маркетплейса. Когда имя имитирует официальное, `claude plugin list` и вкладка **Errors** в `/plugin` сообщают о каждом затронутом плагине с сообщением, которое начинается с:4030Если маркетплейс был зарегистрирован под таким именем до того, как проверка стала его блокировать, маркетплейс и установленные из него плагины перестают загружаться, потому что Claude Code проверяет имя каждый раз при чтении каталога маркетплейса. Если имя имитирует официальное, `claude plugin list` и вкладка **Errors** в `/plugin` сообщают о каждом затронутом плагине сообщением, которое начинается так:
4031 4031
4032```text theme={null}4032```text theme={null}
4033Claude Code refuses the marketplace name "anthropic-plugins-v2"4033Claude Code refuses the marketplace name "anthropic-plugins-v2"
4034```4034```
4035 4035
4036Для имитирующего имени ошибка самого маркетплейса читается как `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own` вместо этого. `claude plugin marketplace add` отказывает любому выдающему себя за имени с `Marketplace name impersonates an official Anthropic/Claude marketplace`.4036Для имитирующего имени собственная ошибка маркетплейса вместо этого звучит как `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own`. `claude plugin marketplace add` отклоняет любое имя, выдающее себя за официальное, с сообщением `Marketplace name impersonates an official Anthropic/Claude marketplace`.
4037 4037
4038До версии v2.1.282 `claude plugin list` и `/plugin` сообщали о плагинах имитирующего имени как не загруженных, без указания имени маркетплейса как причины.4038До v2.1.282 `claude plugin list` и `/plugin` также сообщали, что плагины маркетплейса с имитирующим именем не удалось загрузить, но не указывали имя маркетплейса как причину.
4039 4039
4040**Что делать:**4040**Что делать:**
4041 4041
4042* Запустите `claude plugin marketplace remove <name>`. Это также удаляет плагины, установленные из маркетплейса, и удаляет их сохранённые данные4042* Чтобы сохранить маркетплейс, который файл настроек объявляет встроенно с `"source": "settings"`, переименуйте его до удаления старого имени, потому что удаление маркетплейса также удаляет его запись из ваших файлов настроек. Claude Code v2.1.292 или новее перечисляет эти шаги в сообщении:
4043* Чтобы сохранить маркетплейс, дождитесь, пока его разработчик переименует его, затем запустите `claude plugin marketplace update <name>`4043 1. В каждом файле настроек, где маркетплейс указан в `extraKnownMarketplaces`, задайте ключу записи и её `source.name` одно новое имя из простых ASCII-символов, которое не похоже на официальное. Если администратор добавляет маркетплейс через управляемые настройки вашей организации, этот шаг выполняет администратор
4044* Если вы публикуете маркетплейс, переименуйте его в вашем `marketplace.json`; пользователи затем обновят маркетплейс вместо его удаления4044 2. Выполните `claude plugin marketplace remove <old-name>` или удалите старое имя на вкладке **Marketplaces** в `/plugin`. Это также удаляет его плагины и их данные, параметры и секреты
4045 3. Снова запустите Claude Code — в папке проекта, если файл является файлом настроек проекта. Затем установите плагины из переименованного маркетплейса
4046* Чтобы сохранить любой другой маркетплейс, дождитесь, пока его сопровождающий переименует его, затем выполните `claude plugin marketplace update <name>`
4047* Чтобы удалить маркетплейс, выполните `claude plugin marketplace remove <name>`. Это также удаляет установленные из маркетплейса плагины и их данные, параметры и секреты
4048* Если вы публикуете маркетплейс, переименуйте его в своём `marketplace.json`; тогда пользователи обновят маркетплейс, а не удалят его
4045 4049
4046<h3 id="marketplace-is-already-added-from-a-different-source">4050<h3 id="marketplace-is-already-added-from-a-different-source">
4047 Marketplace is already added from a different source4051 Маркетплейс уже добавлен из другого источника
4048</h3>4052</h3>
4049 4053
4050Вы указали новый источник маркетплейса с помощью [`--marketplace <source>` в команде установки](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command) — в сессии или из вашей оболочки. Каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.4054Вы указали новый источник маркетплейса с помощью [`--marketplace <source>` в команде установки](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command) — в сессии или из оболочки. Каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, уже добавленный вами из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.
4051 4055
4052```text theme={null}4056```text theme={null}
4053Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.4057Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.
4055 4059
4056**Что делать:**4060**Что делать:**
4057 4061
4058* Если маркетплейс, который вы уже добавили, это тот, который вам нужен, установите из него по имени: `/plugin install <plugin>@<name>`4062* Если нужен уже добавленный маркетплейс, установите из него плагин по имени: `/plugin install <plugin>@<name>`
4059* Чтобы переключиться на новый источник, запустите `/plugin marketplace remove <name>`, затем повторите попытку установки4063* Чтобы переключиться на новый источник, выполните `/plugin marketplace remove <name>`, затем повторите попытку установки
4060 4064
4061<h3 id="plugin-command-references-user-config">4065<h3 id="plugin-command-references-user-config">
4062 Plugin command references user\_config in a shell command4066 Команда плагина ссылается на user\_config в shell-команде
4063</h3>4067</h3>
4064 4068
4065Хук плагина, [monitor](/docs/ru/plugins/components#monitors), или команда MCP [`headersHelper`](/docs/ru/mcp#use-dynamic-headers-for-custom-authentication) ссылается на опцию `${user_config.KEY}` [плагина](/docs/ru/plugins/manifest-reference#user-configuration), и подставленная строка будет передана в оболочку. Настроенное значение, содержащее `$(...)`, обратные кавычки или `;`, будет выполнено как код там, поэтому Claude Code отказывается запускать компонент вместо подстановки значения. Проверка выполняется на шаблоне команды, поэтому ошибка появляется даже когда значение ещё не настроено. До версии v2.1.207 значение подставлялось в команду оболочки.4069Команда хука плагина, [монитора](/docs/ru/plugins/components#monitors) или MCP [`headersHelper`](/docs/ru/mcp#use-dynamic-headers-for-custom-authentication) ссылается на [параметр плагина](/docs/ru/plugins/manifest-reference#user-configuration) `${user_config.KEY}`, и строка после подстановки была бы передана оболочке. Настроенное значение, содержащее `$(...)`, обратные кавычки или `;`, выполнилось бы там как код, поэтому Claude Code отказывается запускать компонент вместо подстановки значения. Проверка выполняется по шаблону команды, поэтому ошибка появляется, даже когда значение ещё не настроено. До v2.1.207 значение подставлялось в shell-команду.
4066 4070
4067Формулировка зависит от того, какая поверхность ссылалась на опцию. Хук в форме оболочки сообщает:4071Формулировка зависит от того, в каком месте используется ссылка на параметр. Хук в shell-форме сообщает:
4068 4072
4069```text theme={null}4073```text theme={null}
4070Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}4074Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}
4071```4075```
4072 4076
4073Monitor сообщает:4077Монитор сообщает:
4074 4078
4075```text theme={null}4079```text theme={null}
4076Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.4080Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.
4084 4088
4085**Что делать:**4089**Что делать:**
4086 4090
4087* Для хука добавьте массив `args`, чтобы он выполнялся в [exec форме](/docs/ru/hooks#exec-form-and-shell-form), где каждый `${user_config.KEY}` становится одним аргументом без оболочки между ними. Или удалите ссылку и прочитайте переменную окружения `$CLAUDE_PLUGIN_OPTION_<KEY>` внутри скрипта4091* Для хука добавьте массив `args`, чтобы он выполнялся в [exec-форме](/docs/ru/hooks#exec-form-and-shell-form), где каждый `${user_config.KEY}` становится одним аргументом без участия оболочки. Или уберите ссылку и читайте переменную окружения `$CLAUDE_PLUGIN_OPTION_<KEY>` внутри скрипта
4088* Для monitor удалите ссылку и пусть скрипт monitor прочитает значение из файла конфигурации4092* Для монитора уберите ссылку, и пусть скрипт монитора читает значение из файла конфигурации
4089* Для `headersHelper` переместите `${user_config.KEY}` в поле `headers` сервера, которое не анализируется оболочкой, или прочитайте значение внутри скрипта помощника4093* Для `headersHelper` перенесите `${user_config.KEY}` в поле `headers` сервера, которое не разбирается оболочкой, или читайте значение внутри вспомогательного скрипта
4090 4094
4091<h3 id="plugin-archive-integrity-check-failed">4095<h3 id="plugin-archive-integrity-check-failed">
4092 Plugin archive integrity check failed4096 Проверка целостности архива плагина не пройдена
4093</h3>4097</h3>
4094 4098
4095Запись маркетплейса плагина использует [источник `archive`](/docs/ru/plugins/marketplace-reference#archive-plugin-source) с закреплением `sha256`, и дайджест загруженного файла не совпадает с закреплением. Claude Code отказывает в установке, поэтому ничего не меняется в кэше плагинов. Несовпадение имеет три возможные причины:4099Запись плагина в маркетплейсе использует [источник `archive`](/docs/ru/plugins/marketplace-reference#archive-plugin-source) с закреплённым `sha256`, и хеш загруженного файла не совпадает с закреплённым значением. Claude Code отказывается от установки, поэтому в кэше плагинов ничего не меняется. У несовпадения три возможные причины:
4096 4100
4097* Файл по URL-адресу изменился после того, как автор вычислил закрепление4101* Файл по URL изменился после того, как автор вычислил закреплённое значение
4098* Автор ввёл неправильный дайджест в запись маркетплейса4102* Автор указал неверный хеш в записи маркетплейса
4099* URL-адрес служит другим файлом, чем тот, который автор закрепил4103* URL отдаёт не тот файл, который закрепил автор
4100 4104
4101```text theme={null}4105```text theme={null}
4102Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.4106Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.
4104 4108
4105**Что делать:**4109**Что делать:**
4106 4110
4107* Если вы публикуете плагин, пересчитайте дайджест точного файла, который служит URL-адрес, например с помощью `shasum -a 256 my-plugin.zip`, или `Get-FileHash -Algorithm SHA256 my-plugin.zip` в PowerShell, и обновите `sha256` в записи маркетплейса4111* Если вы публикуете плагин, заново вычислите хеш именно того файла, который отдаёт URL, например с помощью `shasum -a 256 my-plugin.zip` или `Get-FileHash -Algorithm SHA256 my-plugin.zip` в PowerShell, и обновите `sha256` в записи маркетплейса
4108* Если вы устанавливаете плагин, запустите `/plugin marketplace update <name>` для обновления каталога на случай, если запись была исправлена, затем повторите попытку установки4112* Если вы устанавливаете плагин, выполните `/plugin marketplace update <name>`, чтобы обновить каталог на случай, если запись исправили, затем повторите попытку установки
4109* Если дайджесты всё ещё не совпадают после обновления, спросите владельца маркетплейса, какой файл они закрепили перед установкой4113* Если хеши по-прежнему не совпадают после обновления, перед установкой спросите владельца маркетплейса, какой файл он закрепил
4110 4114
4111<h3 id="path-escapes-plugin-directory">4115<h3 id="path-escapes-plugin-directory">
4112 Path escapes plugin directory4116 Путь выходит за пределы каталога плагина
4113</h3>4117</h3>
4114 4118
4115Путь компонента плагина, объявленный в `plugin.json` плагина или в его [записи маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries), разрешается вне собственной директории плагина. Claude Code отбрасывает этот путь и загружает остальную часть плагина. Имя компонента в сообщении, такое как `commands` или `hooks`, называет поле, которое объявило путь.4119Путь компонента плагина, объявленный в `plugin.json` плагина или в его [записи маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries), указывает за пределы собственного каталога плагина. Claude Code отбрасывает этот путь и загружает остальную часть плагина. Имя компонента в сообщении, например `commands` или `hooks`, указывает поле, в котором объявлен путь.
4116 4120
4117```text theme={null}4121```text theme={null}
4118commands path escapes plugin directory: ./../shared.md4122commands path escapes plugin directory: ./../shared.md
4119```4123```
4120 4124
4121В выводе команды `claude plugin` та же ошибка читается как `Path escapes plugin directory: ./../shared.md (commands)`.4125В выводе команд `claude plugin` та же ошибка звучит как `Path escapes plugin directory: ./../shared.md (commands)`.
4122 4126
4123Claude Code отклоняет как путь, который указывает вне плагина в том виде, в котором он написан, например `../shared-utils`, так и символическую ссылку, которая ведёт вне плагина и не является одной из [правил символических ссылок маркетплейса](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks), которые разрешены. Для символической ссылки сообщение также указывает, где разрешается путь:4127Claude Code отклоняет как путь, который в записанном виде указывает за пределы плагина, например `../shared-utils`, так и символическую ссылку, которая ведёт за пределы плагина и не разрешена [правилами символических ссылок маркетплейса](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks). Для символической ссылки сообщение также указывает, куда разрешается путь:
4124 4128
4125```text theme={null}4129```text theme={null}
4126commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory4130commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory
4127```4131```
4128 4132
4129На macOS и Linux Claude Code также отклоняет путь компонента, который содержит обратную косую черту где-либо в нём, даже когда путь остаётся внутри плагина. Плагин, чьи пути компонентов используют разделители в стиле Windows, загружается на Windows и вызывает это отклонение на других платформах:4133В macOS и Linux Claude Code также отклоняет путь компонента, содержащий обратную косую черту в любом месте, даже если путь остаётся внутри плагина. Плагин, пути компонентов которого используют разделители в стиле Windows, загружается в Windows и вызывает этот отказ на других платформах:
4130 4134
4131```text theme={null}4135```text theme={null}
4132commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform4136commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform
4133```4137```
4134 4138
4135До версии v2.1.251 Claude Code загружала путь `commands`, объявленный в записи маркетплейса, даже когда он указывал вне директории плагина.4139До v2.1.251 Claude Code загружал путь `commands`, объявленный в записи маркетплейса, даже если он указывал за пределы каталога плагина.
4136 4140
4137До версии v2.1.257 проверка смотрела только на написание пути, а не на то, где ведёт символическая ссылка.4141До v2.1.257 проверка учитывала только написание пути, а не то, куда ведёт символическая ссылка.
4138 4142
4139**Что делать:**4143**Что делать:**
4140 4144
4141* Переместите упомянутый файл внутри директории плагина и укажите на него с помощью относительного пути `./`4145* Переместите указанный файл внутрь каталога плагина и укажите на него относительным путём с `./`
4142* Если путь является символической ссылкой на файл вне плагина, замените символическую ссылку копией файла4146* Если путь — символическая ссылка на файл вне плагина, замените символическую ссылку копией файла
4143* Если сообщение говорит, что путь содержит обратную косую черту, напишите путь с прямыми косыми чертами, например `./commands/deploy.md`4147* Если в сообщении сказано, что путь содержит обратную косую черту, запишите путь с прямыми косыми чертами, например `./commands/deploy.md`
4144* Для совместного использования файлов с другими плагинами в одном маркетплейсе свяжите их с помощью символической ссылки внутри директории плагина, следуя [правилам символических ссылок](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)4148* Чтобы совместно использовать файлы с другими плагинами того же маркетплейса, свяжите их символической ссылкой внутри каталога плагина, следуя [правилам символических ссылок](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)
4145 4149
4146<h3 id="path-could-not-be-checked">4150<h3 id="path-could-not-be-checked">
4147 Path could not be checked4151 Путь не удалось проверить
4148</h3>4152</h3>
4149 4153
4150Claude Code попросила операционную систему проверить, существует ли путь плагина, и получила ошибку, отличную от «не найдено», поэтому она не загружает то, что называет путь. Сколько плагина загружается, зависит от того, какой путь не удался:4154Claude Code запросил у операционной системы, существует ли путь плагина, и получил ошибку, отличную от «не найдено», поэтому не загружает то, на что указывает путь. Какая часть плагина загрузится, зависит от того, какой путь не прошёл проверку:
4151 4155
4152* Одно из [расположений компонентов по умолчанию](/docs/ru/plugins/manifest-reference#standard-layout) плагина, такое как папка `skills/`, файл `monitors/monitors.json` или [`SKILL.md` в корне плагина](/docs/ru/plugins/components#skills): остальные компоненты плагина всё ещё загружаются4156* Одно из [расположений компонентов плагина по умолчанию](/docs/ru/plugins/manifest-reference#standard-layout), например папка `skills/`, файл `monitors/monitors.json` или [`SKILL.md` в корне плагина](/docs/ru/plugins/components#skills): остальные компоненты плагина по-прежнему загружаются
4153* Собственная директория плагина: ничего из этого плагина не загружается4157* Собственный каталог плагина: ничего из этого плагина не загружается
4154 4158
4155Вы не видите эту ошибку для пути, который вообще не существует. В `/plugin` ошибка появляется под плагином и называет путь и код, который вернула операционная система:4159Для пути, который вообще не существует, эта ошибка не появляется. В `/plugin` ошибка отображается под плагином и указывает путь и код, который вернула операционная система:
4156 4160
4157```text theme={null}4161```text theme={null}
4158skills path could not be checked: /home/user/my-plugin/skills (ELOOP)4162skills path could not be checked: /home/user/my-plugin/skills (ELOOP)
4159```4163```
4160 4164
4161В `claude plugin list` та же ошибка читается как `Path not found: /home/user/my-plugin/skills (skills, ELOOP)`.4165В `claude plugin list` та же ошибка звучит как `Path not found: /home/user/my-plugin/skills (skills, ELOOP)`.
4162 4166
4163Причины, которые вызывают эту ошибку, включают:4167К причинам этой ошибки относятся:
4164 4168
4165* `ELOOP`: символическая ссылка в пути указывает на себя или образует цикл4169* `ELOOP`: символическая ссылка в пути указывает сама на себя или образует цикл
4166* `EIO` или `ESTALE`: путь находится на сетевом монтировании, которое нарушено или устарело4170* `EIO` или `ESTALE`: путь находится на сетевом подключении, которое повреждено или устарело
4167* `EACCES`: один из директорий выше пути отказывает вам в разрешении на его обход4171* `EACCES`: один из каталогов выше пути не даёт вам прав доступа для его прохождения
4168 4172
4169**Что делать:**4173**Что делать:**
4170 4174
4171* Замените символическую ссылку, которая указывает на себя, на реальную папку, или удалите её4175* Замените символическую ссылку, указывающую сама на себя, настоящей папкой или удалите её
4172* Если путь находится на сетевом монтировании, переподключите общий ресурс4176* Если путь находится на сетевом подключении, переподключите общий ресурс
4173* Если код `EACCES`, восстановите ваше разрешение на выполнение в директориях выше пути4177* Если код — `EACCES`, восстановите право на выполнение для каталогов выше пути
4174* Запустите `/reload-plugins` после исправления пути, или перезагрузите Claude Code, чтобы загрузить плагин или компонент4178* После исправления пути выполните `/reload-plugins` или перезапустите Claude Code, чтобы загрузить плагин или компонент
4175 4179
4176До версии v2.1.265 Claude Code рассматривала папку компонента по умолчанию, которую она не могла проверить, как отсутствующую и загружала плагин без этого компонента, без ошибки.4180До v2.1.265 Claude Code считал папку компонента по умолчанию, которую не удалось проверить, отсутствующей и загружал плагин без этого компонента, не выводя ошибку.
4177 4181
4178<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">4182<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">
4179 Marketplace entry path does not stay inside the marketplace directory4183 Путь записи маркетплейса не остаётся внутри каталога маркетплейса
4180</h3>4184</h3>
4181 4185
4182[Запись маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries) плагина объявляет путь источника, который Claude Code не может разрешить в расположение внутри собственной директории маркетплейса, поэтому плагин не устанавливается и не загружается. Отказ охватывает:4186[Запись маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries) плагина объявляет путь источника, который Claude Code не может разрешить в расположение внутри собственного каталога маркетплейса, поэтому плагин не устанавливается и не загружается. Отказ распространяется на:
4183 4187
4184* Путь записи, который является абсолютным, поднимается из маркетплейса с помощью `..`, или написан как сетевой путь4188* Путь записи, который является абсолютным, выходит за пределы маркетплейса с помощью `..` или записан как сетевой путь
4185* На macOS и Linux путь записи, который содержит обратную косую черту где-либо после начального `./`4189* В macOS и Linux — путь записи, содержащий обратную косую черту в любом месте после начального `./`
4186* Запись в маркетплейсе, полученном из удалённого источника, такого как git или URL, которая достигает своей цели через символическую ссылку, разрешающуюся вне директории маркетплейса4190* Запись в маркетплейсе, полученном из удалённого источника, например git или URL, которая достигает цели через символическую ссылку, разрешающуюся за пределы каталога маркетплейса
4187* Относительная запись в маркетплейсе, добавленном из прямого URL-адреса его `marketplace.json`: Claude Code загружает только этот файл, поэтому локальные файлы плагинов не существуют для пути, чтобы назвать. См. [Plugins with relative paths fail in URL-based marketplaces](/docs/ru/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)4191* Относительную запись в маркетплейсе, добавленном по прямому URL на его `marketplace.json`: Claude Code загружает только этот файл, поэтому локальных файлов плагина, на которые мог бы указывать путь, нет. См. [Плагины с относительными путями не работают в маркетплейсах на основе URL](/docs/ru/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)
4188 4192
4189`claude plugin install` сообщает об отказе следующим образом:4193`claude plugin install` сообщает об отказе так:
4190 4194
4191```text theme={null}4195```text theme={null}
4192Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)4196Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)
4193```4197```
4194 4198
4195Когда запись уже установленного плагина не проходит ту же проверку, `claude plugin list` показывает плагин как `failed to load` с:4199Если запись уже установленного плагина не проходит ту же проверку, `claude plugin list` показывает плагин как `failed to load` с сообщением:
4196 4200
4197```text theme={null}4201```text theme={null}
4198Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.4202Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.
4200 4204
4201**Что делать:**4205**Что делать:**
4202 4206
4203* Если вы поддерживаете маркетплейс, напишите `source` записи как простой относительный путь с прямыми косыми чертами, например `./plugins/my-plugin`, и держите любую символическую ссылку, которую он пересекает, указывающей внутри директории маркетплейса4207* Если вы сопровождаете маркетплейс, запишите `source` записи как простой относительный путь с прямыми косыми чертами, например `./plugins/my-plugin`, и следите, чтобы любая символическая ссылка на этом пути указывала внутрь каталога маркетплейса
4204* Если вы добавили маркетплейс из прямого URL-адреса, относительные записи не могут разрешиться. Попросите автора маркетплейса использовать [другой источник плагина](/docs/ru/plugins/marketplace-reference#plugin-sources), или добавьте маркетплейс из его репозитория git вместо этого4208* Если вы добавили маркетплейс по прямому URL, относительные записи не могут быть разрешены. Попросите автора маркетплейса использовать [другой источник плагина](/docs/ru/plugins/marketplace-reference#plugin-sources) или вместо этого добавьте маркетплейс из его git-репозитория
4205 4209
4206<h3 id="failed-to-load-marketplace-configuration">4210<h3 id="failed-to-load-marketplace-configuration">
4207 Failed to load marketplace configuration4211 Failed to load marketplace configuration
4208</h3>4212</h3>
4209 4213
4210Claude Code хранит маркетплейсы плагинов, которые вы добавили, в файле реестра в `~/.claude/plugins/known_marketplaces.json`. Команда плагина, которой нужен реестр, такая как `claude plugin install`, не выполняется с одним из двух сообщений, когда Claude Code не может использовать файл:4214Claude Code хранит добавленные вами маркетплейсы плагинов в файле реестра `~/.claude/plugins/known_marketplaces.json`. Команда плагина, которой нужен реестр, например `claude plugin install`, завершается одним из двух сообщений, если Claude Code не может использовать этот файл:
4211 4215
4212* `Failed to load marketplace configuration`: файл не является действительным JSON, или не может быть прочитан. Пустой файл также не работает таким образом.4216* `Failed to load marketplace configuration`: файл существует, но не является допустимым JSON или не может быть прочитан. Пустой файл также приводит к этой ошибке.
4213* `Marketplace configuration file is corrupted`: файл является действительным JSON, но его содержимое не соответствует схеме реестра.4217* `Marketplace configuration file is corrupted`: файл является допустимым JSON, но его содержимое не соответствует схеме реестра.
4214 4218
4215С пустым файлом `claude plugin install` сообщает:4219С пустым файлом `claude plugin install` сообщает:
4216 4220
4218✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF4222✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF
4219```4223```
4220 4224
4221До версии v2.1.246 `claude plugin install` не сообщала об этой ошибке.4225До v2.1.246 `claude plugin install` не сообщал об этой ошибке.
4222 4226
4223**Что делать:**4227**Что делать:**
4224 4228
4225* Откройте `~/.claude/plugins/known_marketplaces.json` и исправьте JSON, или исправьте записи, которые сообщение называет как не соответствующие схеме реестра4229* Откройте `~/.claude/plugins/known_marketplaces.json` и исправьте JSON или исправьте записи, которые в сообщении указаны как не соответствующие схеме реестра
4226* Если вы не можете исправить это, удалите файл или замените его содержимое на `{}`, затем добавьте каждый маркетплейс снова с помощью `claude plugin marketplace add <source>`. Claude Code повторно регистрирует маркетплейсы, которые ваш пользователь или управляемые параметры объявляют в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), в следующий раз, когда вы запустите его в папке, которую вы доверили.4230* Если исправить файл не удаётся, удалите его или замените его содержимое на `{}`, затем заново добавьте каждый маркетплейс с помощью `claude plugin marketplace add <source>`. Claude Code повторно регистрирует маркетплейсы, объявленные в ваших пользовательских или управляемых настройках в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), при следующем запуске в папке, которой вы доверяете.
4227 4231
4228<h3 id="plugin-is-required-by-your-organization">4232<h3 id="plugin-is-required-by-your-organization">
4229 Plugin is required by your organization4233 Плагин обязателен в вашей организации
4230</h3>4234</h3>
4231 4235
4232Вы запустили `claude plugin disable`, или использовали вкладку `/plugin` **Installed**, чтобы отключить [плагин, синхронизированный с claude.ai](/docs/ru/plugins/loading#synced-plugins), который ваша организация отмечает как обязательный:4236Вы выполнили `claude plugin disable` или использовали вкладку **Installed** в `/plugin`, чтобы отключить [плагин, синхронизированный из claude.ai](/docs/ru/plugins/loading#synced-plugins), который ваша организация отметила как обязательный:
4233 4237
4234```text theme={null}4238```text theme={null}
4235Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.4239Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.
4236```4240```
4237 4241
4238Claude Code ничего не сохраняет и плагин остаётся включённым.4242Claude Code ничего не сохраняет, и плагин остаётся включённым.
4239 4243
4240Когда вы пытаетесь отключить плагин, от которого зависит обязательный плагин, Claude Code отказывает таким же образом, с сообщением, называющим обязательный плагин, который его требует.4244При попытке отключить плагин, от которого зависит обязательный плагин, Claude Code отказывает так же, с сообщением, в котором указан обязательный плагин, которому он нужен.
4241 4245
4242**Что делать:**4246**Что делать:**
4243 4247
4244* Попросите администратора вашей организации claude.ai изменить статус обязательности плагина на claude.ai4248* Попросите администратора вашей организации claude.ai изменить статус обязательности плагина на claude.ai
4245 4249
4246<h3 id="plugin-was-not-uninstalled">4250<h3 id="plugin-was-not-uninstalled">
4247 Plugin was not uninstalled4251 Плагин не был удалён
4248</h3>4252</h3>
4249 4253
4250Вы запустили [`claude plugin uninstall`](/docs/ru/plugins/cli-reference#plugin-uninstall), или выбрали **Uninstall** на вкладке `/plugin` **Installed**, и удаление остановилось с сообщением, начинающимся с `"<plugin>" was not uninstalled:`. Если текст после этого двоеточия начинается с `installed_plugins.json` вместо названия файла параметров, причина заключается в содержимом `installed_plugins.json`, которое эта версия Claude Code не может прочитать. Для этой формы см. [`installed_plugins.json` holds a record this version can't read](/docs/ru/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read).4254Вы выполнили [`claude plugin uninstall`](/docs/ru/plugins/cli-reference#plugin-uninstall) или выбрали **Uninstall** на вкладке **Installed** в `/plugin`, и удаление остановилось с сообщением, начинающимся с `"<plugin>" was not uninstalled:`. Если текст после двоеточия начинается с `installed_plugins.json`, а не с имени файла настроек, причина — содержимое `installed_plugins.json`, которое эта версия Claude Code не может прочитать. Для этого варианта см. [`installed_plugins.json` содержит запись, которую эта версия не может прочитать](/docs/ru/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read).
4251 4255
4252Когда Claude Code удалила запись плагина из `enabledPlugins` и прочитала файлы параметров этой области обратно, либо плагин всё ещё был включён там, либо файл, который мог бы его включить, не мог быть прочитан или проверен. Удаление сохранённых опций, секретов и данных плагина, пока запись параметров могла бы его включить обратно, привело бы к их потере, поэтому удаление останавливается вместо этого: плагин остаётся установленным и ничто, что он сохранил, не удаляется.4256Когда Claude Code удалил запись плагина из `enabledPlugins` и заново прочитал файлы настроек этой области действия, либо плагин всё ещё оказался включён там, либо файл, который мог бы его включить, не удалось прочитать или проверить. Удаление сохранённых параметров, секретов и данных плагина, пока запись в настройках может снова его включить, привело бы к их потере, поэтому удаление останавливается: плагин остаётся установленным, и ничего из сохранённого им не удаляется.
4253 4257
4254```text theme={null}4258```text theme={null}
4255✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.4259✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.
4256```4260```
4257 4261
4258Середина сообщения называет файл и причину:4262Средняя часть сообщения указывает файл и причину:
4259 4263
4260* `it is still switched on in <file>, although the settings change reported no error`: запись параметров сообщила об успехе, но запись всё ещё там при чтении файла обратно4264* `it is still switched on in <file>, although the settings change reported no error`: запись настроек сообщила об успехе, но при повторном чтении файла запись всё ещё там
4261* `it is still switched on in <file>, and the settings change failed (<error>)`: файл не мог быть сохранён по причине в скобках4265* `it is still switched on in <file>, and the settings change failed (<error>)`: файл не удалось сохранить по причине, указанной в скобках
4262* `<file> is there and could not be read`: файл существует, но не мог быть прочитан как параметры, например потому что это не действительный JSON, поэтому он может всё ещё включить плагин4266* `<file> is there and could not be read`: файл существует, но его не удалось прочитать как настройки, например потому что он не является допустимым JSON, поэтому он всё ещё может включать плагин
4263* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`: Claude Code не прочитала файл параметров проекта или локальных параметров, потому что файл, или папка `.claude`, которая его содержит, это ссылка, которая ведёт на сетевое расположение, или потому что она не могла проверить этот путь4267* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`: Claude Code не прочитал файл настроек проекта или локальных настроек, потому что этот файл или содержащая его папка `.claude` является ссылкой, ведущей в сетевое расположение, или потому что не удалось проверить этот путь
4264 4268
4265`claude plugin uninstall` выходит с кодом 1, и с `--json` результат несёт `failureCode: "settings_still_on"`. `/plugin` показывает то же сообщение.4269`claude plugin uninstall` завершается с кодом 1, а с `--json` результат содержит `failureCode: "settings_still_on"`. `/plugin` показывает то же сообщение.
4266 4270
4267**Что делать:**4271**Что делать:**
4268 4272
4269* Следуйте последнему предложению сообщения: исправьте или замените файл параметров, который оно называет, или удалите запись плагина из `enabledPlugins` в этом файле самостоятельно, затем запустите удаление снова4273* Следуйте последнему предложению сообщения: исправьте или замените указанный файл настроек либо самостоятельно удалите запись плагина из `enabledPlugins` в этом файле, затем снова выполните удаление
4270 4274
4271<h2 id="tool-errors">4275<h2 id="tool-errors">
4272 Ошибки инструментов4276 Ошибки инструментов