94| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |94| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |
95| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |95| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |
96| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |96| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |
97| `Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |
97| `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile` | [Authentication](#anthropic-profile-login-expired) |98| `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile` | [Authentication](#anthropic-profile-login-expired) |
98| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) |99| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) |
99| `claude.ai rejected the session token` / `session token rejected` | [Authentication](#claude-ai-rejected-the-session-token) |100| `claude.ai rejected the session token` / `session token rejected` | [Authentication](#claude-ai-rejected-the-session-token) |
1303Failed to authenticate: OAuth session expired and could not be refreshed1304Failed to authenticate: OAuth session expired and could not be refreshed
1304```1305```
1305 1306
1307О сообщении `Login expired`, которое заканчивается на `or re-authenticate your Anthropic profile`, см. раздел [Anthropic profile login expired](#anthropic-profile-login-expired).
1308
1306Это не то же состояние, что [OAuth-токен отозван или истёк](#oauth-token-revoked-or-expired). Те сообщения сообщают об отказе, который вернул API. `Login expired` Claude Code формирует сам для входа, который ему уже не удалось обновить, поэтому запрос не отправляется. Когда обновление не удаётся из-за того, что приостановлена сама учётная запись, а не из-за устаревшего входа, Claude Code вместо этого показывает [Ваша учётная запись заблокирована](#your-account-is-on-hold).1309Это не то же состояние, что [OAuth-токен отозван или истёк](#oauth-token-revoked-or-expired). Те сообщения сообщают об отказе, который вернул API. `Login expired` Claude Code формирует сам для входа, который ему уже не удалось обновить, поэтому запрос не отправляется. Когда обновление не удаётся из-за того, что приостановлена сама учётная запись, а не из-за устаревшего входа, Claude Code вместо этого показывает [Ваша учётная запись заблокирована](#your-account-is-on-hold).
1307 1310
1308Сессии, аутентифицированные с помощью API-ключа, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ru/env-vars) или стороннего провайдера, не используют сохранённый вход и никогда не видят этого сообщения.1311Сессии, аутентифицированные с помощью API-ключа, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ru/env-vars) или стороннего провайдера, не используют сохранённый вход и никогда не видят этого сообщения.
1468 Срок входа профиля Anthropic истёк1471 Срок входа профиля Anthropic истёк
1469</h3>1472</h3>
1470 1473
1471Claude Code проходит аутентификацию через профиль учётных данных Anthropic, сохранённые учётные данные входа которого истекли, и в профиле нет учётных данных обновления, которые Claude Code мог бы использовать для их продления. Claude Code останавливает каждый запрос локально без повторных попыток, потому что повторная попытка прочитала бы те же истёкшие учётные данные.1474Claude Code проходит аутентификацию через профиль учётных данных Anthropic, срок действия сохранённых учётных данных входа которого истёк, и в профиле нет учётных данных обновления, которые Claude Code мог бы использовать для их продления. Claude Code останавливает каждый запрос локально без повторных попыток.
1472 1475
1473```text theme={null}1476```text theme={null}
1474Anthropic profile login expired · Re-authenticate your Anthropic profile1477Anthropic profile login expired · Re-authenticate your Anthropic profile
1475Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile1478Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile
1476```1479```
1477 1480
1478Это появляется только тогда, когда активные учётные данные поступают из профиля учётных данных Anthropic — того, который вы выбираете переменной окружения `ANTHROPIC_PROFILE`, который Claude Code обнаруживает как активный профиль в вашем каталоге конфигурации Anthropic, или который Claude Code записал, когда вы [вошли без API-ключа](/docs/ru/authentication#sign-in-without-an-api-key). Сессии, аутентифицирующиеся с помощью API-ключа, Bearer-токена, такого как `ANTHROPIC_AUTH_TOKEN`, или стороннего провайдера, никогда не видят этого сообщения.
1479
1480На машине, которая [предлагает вход без ключа](/docs/ru/authentication#sign-in-without-an-api-key), запустите `/login`, выберите учётную запись Anthropic Console и войдите снова, чтобы обновить профиль, записанный входом в Console без ключа или командой `ant auth login` Claude Platform CLI. Claude Code заменит истёкшие учётные данные в этом профиле. Для профиля федерации или профиля, созданного другим инструментом, `/login` не обновляет учётные данные. Какую форму вы увидите, зависит от того, выбрали ли вы профиль сами или Claude Code обнаружил его:
1481
1482* Если вы явно задали `ANTHROPIC_PROFILE`, сообщение заканчивается на `Re-authenticate your Anthropic profile`.
1483* Если Claude Code обнаружил профиль в вашем каталоге конфигурации, сообщение предлагает `/login`, потому что Claude Code отдаёт работающему `/login` приоритет над обнаруженным профилем и тогда проходит аутентификацию с вашей учётной записью claude.ai или Console. До версии v2.1.234 Claude Code показывал форму `Re-authenticate your Anthropic profile` и в этом случае.
1484
1485**Что делать:**1481**Что делать:**
1486 1482
1487* Снова войдите в профиль, затем повторите попытку: на машине, которая [предлагает вход без ключа](/docs/ru/authentication#sign-in-without-an-api-key), запустите `/login` и выберите учётную запись Anthropic Console для профиля, записанного входом в Console без ключа или командой `ant auth login` Claude Platform CLI; для других профилей используйте инструмент, который их создал1483* Если сообщение начинается с `Login expired`, выполните `/login`, чтобы войти снова
1484* Чтобы обновить профиль, записанный бесключевым входом в Console или командой `ant auth login` из Claude Platform CLI, выполните `/login` на компьютере, который [предлагает бесключевой вход](/docs/ru/authentication#sign-in-without-an-api-key). Выберите учётную запись Anthropic Console, затем **Sign in with your Console account**. Claude Code заменит истёкшие учётные данные в этом профиле
1485* Чтобы обновить профиль, созданный другим инструментом, войдите снова с помощью этого инструмента. Если вместо этого вы выберете **Sign in with your Console account** в `/login`, Claude Code оставит профиль как есть и создаст API-ключ
1488* Если учётные данные профиля предоставил администратор, попросите его выдать новые1486* Если учётные данные профиля предоставил администратор, попросите его выдать новые
1489* Запустите `/status`, чтобы проверить активный источник учётных данных и имя профиля1487* Запустите `/status`, чтобы проверить активный источник учётных данных и имя профиля
1490* Чтобы перестать использовать профиль, сбросьте `ANTHROPIC_PROFILE`, если вы её задавали, затем пройдите аутентификацию другим способом, например через `/login` или `ANTHROPIC_API_KEY`1488* Чтобы перестать использовать профиль, сбросьте `ANTHROPIC_PROFILE`, если вы её задавали, затем пройдите аутентификацию другим способом, например через `/login` или `ANTHROPIC_API_KEY`
1491 1489
1490Начало сообщения подсказывает, как Claude Code нашёл профиль:
1491
1492* Когда Claude Code обнаружил профиль в вашем каталоге конфигурации и его режим аутентификации — `user_oauth`, сообщение начинается с `Login expired` и первым предлагает `/login`. Claude Code отдаёт рабочему `/login` приоритет над обнаруженным профилем и затем проходит аутентификацию с вашей учётной записью claude.ai. С v2.1.234 до v2.1.277 эта форма выглядела как `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile`. До v2.1.234 Claude Code и в этом случае показывал форму `Re-authenticate your Anthropic profile`.
1493* Когда вы выбрали профиль с помощью `ANTHROPIC_PROFILE`, сообщение начинается с `Anthropic profile login expired`.
1494
1495Это появляется только тогда, когда активные учётные данные берутся из профиля учётных данных Anthropic: того, который вы выбираете с помощью переменной окружения `ANTHROPIC_PROFILE`, того, который Claude Code обнаруживает как активный профиль в вашем каталоге конфигурации Anthropic, или того, который Claude Code записал, когда вы [вошли без API-ключа](/docs/ru/authentication#sign-in-without-an-api-key). Сессии, которые проходят аутентификацию с API-ключом, Bearer-токеном, например `ANTHROPIC_AUTH_TOKEN`, или через стороннего провайдера, никогда не видят этого сообщения.
1496
1492<h3 id="oauth-scope-requirement">1497<h3 id="oauth-scope-requirement">
1493 Требование к OAuth scope1498 Требование к OAuth scope
1494</h3>1499</h3>
3957 Ошибки плагинов3962 Ошибки плагинов
3958</h2>3963</h2>
3959 3964
3960Эти ошибки возникают из [конфигурации плагинов](/docs/ru/plugins/overview) и [конфигурации маркетплейса](/docs/ru/plugins/overview). Для проблем с плагинами, которые не выдают одно из сообщений на этой странице, например маркетплейс, который не загружается, или плагин, который устанавливается, но не отображается, см. [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting).3965Эти ошибки связаны с конфигурацией [плагинов](/docs/ru/plugins/overview) и [маркетплейсов](/docs/ru/plugins/overview). Проблемы с плагинами, которые не приводят ни к одному из сообщений на этой странице, например URL маркетплейса, который не загружается, или плагин, который устанавливается, но не появляется, описаны в разделе [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting).
3961 3966
3962<h3 id="plugin-eval-is-currently-in-early-access">3967<h3 id="plugin-eval-is-currently-in-early-access">
3963 plugin eval is currently in early access3968 plugin eval is currently in early access
3964</h3>3969</h3>
3965 3970
3966Вы запустили [`claude plugin eval`](/docs/ru/plugin-evals) или `claude plugin eval init`, и команда завершилась с кодом 1 с одним из этих сообщений перед выполнением каких-либо действий:3971Вы запустили [`claude plugin eval`](/docs/ru/plugin-evals) или `claude plugin eval init`, и команда завершилась с кодом 1 с одним из этих сообщений, ничего не выполнив:
3967 3972
3968```text theme={null}3973```text theme={null}
3969`plugin eval` is currently in early access3974`plugin eval` is currently in early access
3973`plugin eval` is currently unavailable3978`plugin eval` is currently unavailable
3974```3979```
3975 3980
3976Первое сообщение означает, что ваша сборка старше v2.1.269, первой версии, где команда общедоступна. Второе означает, что Anthropic отключила команду на стороне сервера; ничто на вашем компьютере не включит её обратно.3981Первое сообщение означает, что ваша сборка старше v2.1.269 — первой версии, в которой команда общедоступна. Второе означает, что Anthropic отключила команду на стороне сервера; ничто на вашем компьютере не включит её обратно.
3977 3982
3978**Что делать:**3983**Что делать:**
3979 3984
3980* Запустите `claude --version`, затем `claude update`, и запустите команду снова в новом сеансе. См. [требования для plugin evals](/docs/ru/plugin-evals#requirements)3985* Выполните `claude --version`, затем `claude update` и снова запустите команду в новой сессии. См. [требования к оценкам плагинов](/docs/ru/plugin-evals#requirements)
3981* Если вы видите второе сообщение в текущей сборке, попробуйте снова позже после ещё одного `claude update`3986* Если вы видите второе сообщение в актуальной сборке, повторите попытку позже после очередного `claude update`
3982 3987
3983<h3 id="marketplace-is-registered-from-an-untrusted-source">3988<h3 id="marketplace-is-registered-from-an-untrusted-source">
3984 Marketplace is registered from an untrusted source3989 Маркетплейс зарегистрирован из недоверенного источника
3985</h3>3990</h3>
3986 3991
3987Маркетплейс зарегистрирован под именем, которое [зарезервировано для официальных маркетплейсов Anthropic](/docs/ru/plugins/marketplace-reference#marketplace-file), но его зарегистрированный источник не является репозиторием GitHub `anthropics`. Claude Code повторно проверяет зарезервированные имена каждый раз при загрузке или обновлении маркетплейса, поэтому маркетплейс и плагины, установленные из него, перестают загружаться. До версии v2.1.205 запись, зарегистрированная до того, как её имя было зарезервировано, продолжала загружаться.3992Маркетплейс зарегистрирован под именем, которое [зарезервировано для официальных маркетплейсов Anthropic](/docs/ru/plugins/marketplace-reference#marketplace-file), но его зарегистрированный источник не является репозиторием GitHub организации `anthropics`. Claude Code заново проверяет зарезервированные имена каждый раз при загрузке или обновлении маркетплейса, поэтому маркетплейс и установленные из него плагины перестают загружаться. До v2.1.205 запись, зарегистрированная до того, как её имя стало зарезервированным, продолжала загружаться.
3988 3993
3989```text theme={null}3994```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.3995Marketplace "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```3996```
3992 3997
3993Для маркетплейса, источник которого не является репозиторием GitHub или URL-адресом Git, например локальной директорией, среднее предложение читается как `can only be used with GitHub sources from the 'anthropics' organization` вместо этого. `claude plugin marketplace add` выполняет ту же проверку и отказывает зарезервированному имени с `Failed to add marketplace:`, за которым следует то же предложение о зарезервированном имени.3998Для маркетплейса, источник которого не является репозиторием GitHub или Git URL, например для локального каталога, среднее предложение вместо этого звучит как `can only be used with GitHub sources from the 'anthropics' organization`. `claude plugin marketplace add` выполняет ту же проверку и отклоняет зарезервированное имя с сообщением `Failed to add marketplace:`, за которым следует то же предложение о зарезервированном имени.
3994 3999
3995**Что делать:**4000**Что делать:**
3996 4001
3997* Если маркетплейс уже зарегистрирован, запустите `claude plugin marketplace remove <name>`, затем добавьте его снова из официального репозитория `github.com/anthropics`4002* Если маркетплейс уже зарегистрирован, выполните `claude plugin marketplace remove <name>`, затем добавьте его снова из официального репозитория `github.com/anthropics`
3998* Если вы публикуете сторонний маркетплейс, который использовал это имя до того, как оно было зарезервировано, переименуйте его и попросите пользователей добавить его снова из вашего источника4003* Если вы публикуете сторонний маркетплейс, который использовал это имя до того, как оно стало зарезервированным, переименуйте его и попросите пользователей добавить его заново из вашего источника
3999* См. список зарезервированных имён в разделе [Marketplace schema](/docs/ru/plugins/marketplace-reference#marketplace-file)4004* Список зарезервированных имён см. в разделе [Схема маркетплейса](/docs/ru/plugins/marketplace-reference#marketplace-file)
4000 4005
4001<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">4006<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">
4002 Marketplace name is another spelling of a reserved name4007 Имя маркетплейса — другое написание зарезервированного имени
4003</h3>4008</h3>
4004 4009
4005Имя маркетплейса само по себе не является зарезервированным именем, но Claude Code рассматривает его как другое написание одного из них. [Зарезервированные имена](/docs/ru/plugins/marketplace-reference#reserved-name-spellings) перечисляют, какие написания считаются зарезервированным именем. Claude Code отказывает такому имени при добавлении маркетплейса:4010Имя маркетплейса само по себе не является зарезервированным, но Claude Code считает его другим написанием зарезервированного имени. В разделе [Зарезервированные имена](/docs/ru/plugins/marketplace-reference#reserved-name-spellings) перечислено, какие написания считаются зарезервированным именем. Claude Code отклоняет такое имя при добавлении маркетплейса:
4006 4011
4007```text theme={null}4012```text theme={null}
4008Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.4013Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.
4009```4014```
4010 4015
4011Когда маркетплейс уже зарегистрирован под таким именем, его запись перестаёт загружаться, и `/plugin`, `claude plugin install` и `claude plugin update` предупреждают:4016Если маркетплейс уже зарегистрирован под таким именем, его запись перестаёт загружаться, а `/plugin`, `claude plugin install` и `claude plugin update` выводят предупреждение:
4012 4017
4013```text wrap theme={null}4018```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.plugins4019known_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```4020```
4016 4021
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.`4022Если имя потребовало бы экранирования в оболочке, отказ при добавлении звучит как `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 4023
4019**Что делать:**4024**Что делать:**
4020 4025
4021* Переименуйте маркетплейс на имя, которое не соответствует зарезервированному имени, и добавьте его снова4026* Переименуйте маркетплейс так, чтобы имя не было написанием зарезервированного имени, и добавьте его снова
4022* Для предупреждения об игнорируемой записи запустите команду `claude plugin marketplace remove`, которую оно даёт, или удалите запись из `~/.claude/plugins/known_marketplaces.json`4027* В случае предупреждения об игнорируемой записи выполните указанную в нём команду `claude plugin marketplace remove` или удалите запись из `~/.claude/plugins/known_marketplaces.json`
4023 4028
4024<h3 id="claude-code-refuses-the-marketplace-name">4029<h3 id="claude-code-refuses-the-marketplace-name">
4025 Claude Code refuses the marketplace name4030 Claude Code отклоняет имя маркетплейса
4026</h3>4031</h3>
4027 4032
4028Имя зарегистрированного маркетплейса [выдаёт себя за официальный маркетплейс Anthropic](/docs/ru/plugins/marketplace-reference#reserved-names) в соответствии с правилами, которые перечисляет этот раздел.4033Имя зарегистрированного маркетплейса [выдаёт себя за официальный маркетплейс Anthropic](/docs/ru/plugins/marketplace-reference#reserved-names) по правилам, перечисленным в том разделе.
4029 4034
4030Если маркетплейс был зарегистрирован под таким именем до того, как проверка его заблокировала, маркетплейс и плагины, установленные из него, перестают загружаться, потому что Claude Code проверяет имя каждый раз при чтении каталога маркетплейса. Когда имя имитирует официальное, `claude plugin list` и вкладка **Errors** в `/plugin` сообщают о каждом затронутом плагине с сообщением, которое начинается с:4035Если маркетплейс был зарегистрирован под таким именем до того, как проверка стала его блокировать, маркетплейс и установленные из него плагины перестают загружаться, потому что Claude Code проверяет имя каждый раз при чтении каталога маркетплейса. Если имя имитирует официальное, `claude plugin list` и вкладка **Errors** в `/plugin` сообщают о каждом затронутом плагине сообщением, которое начинается так:
4031 4036
4032```text theme={null}4037```text theme={null}
4033Claude Code refuses the marketplace name "anthropic-plugins-v2"4038Claude Code refuses the marketplace name "anthropic-plugins-v2"
4034```4039```
4035 4040
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`.4041Для имитирующего имени собственная ошибка маркетплейса вместо этого звучит как `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 4042
4038До версии v2.1.282 `claude plugin list` и `/plugin` сообщали о плагинах имитирующего имени как не загруженных, без указания имени маркетплейса как причины.4043До v2.1.282 `claude plugin list` и `/plugin` также сообщали, что плагины маркетплейса с имитирующим именем не удалось загрузить, но не указывали имя маркетплейса как причину.
4039 4044
4040**Что делать:**4045**Что делать:**
4041 4046
4042* Запустите `claude plugin marketplace remove <name>`. Это также удаляет плагины, установленные из маркетплейса, и удаляет их сохранённые данные4047* Чтобы сохранить маркетплейс, который файл настроек объявляет встроенно с `"source": "settings"`, переименуйте его до удаления старого имени, потому что удаление маркетплейса также удаляет его запись из ваших файлов настроек. Claude Code v2.1.292 или новее перечисляет эти шаги в сообщении:
4043* Чтобы сохранить маркетплейс, дождитесь, пока его разработчик переименует его, затем запустите `claude plugin marketplace update <name>`4048 1. В каждом файле настроек, где маркетплейс указан в `extraKnownMarketplaces`, задайте ключу записи и её `source.name` одно новое имя из простых ASCII-символов, которое не похоже на официальное. Если администратор добавляет маркетплейс через управляемые настройки вашей организации, этот шаг выполняет администратор
4044* Если вы публикуете маркетплейс, переименуйте его в вашем `marketplace.json`; пользователи затем обновят маркетплейс вместо его удаления4049 2. Выполните `claude plugin marketplace remove <old-name>` или удалите старое имя на вкладке **Marketplaces** в `/plugin`. Это также удаляет его плагины и их данные, параметры и секреты
4050 3. Снова запустите Claude Code — в папке проекта, если файл является файлом настроек проекта. Затем установите плагины из переименованного маркетплейса
4051* Чтобы сохранить любой другой маркетплейс, дождитесь, пока его сопровождающий переименует его, затем выполните `claude plugin marketplace update <name>`
4052* Чтобы удалить маркетплейс, выполните `claude plugin marketplace remove <name>`. Это также удаляет установленные из маркетплейса плагины и их данные, параметры и секреты
4053* Если вы публикуете маркетплейс, переименуйте его в своём `marketplace.json`; тогда пользователи обновят маркетплейс, а не удалят его
4045 4054
4046<h3 id="marketplace-is-already-added-from-a-different-source">4055<h3 id="marketplace-is-already-added-from-a-different-source">
4047 Marketplace is already added from a different source4056 Маркетплейс уже добавлен из другого источника
4048</h3>4057</h3>
4049 4058
4050Вы указали новый источник маркетплейса с помощью [`--marketplace <source>` в команде установки](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command) — в сессии или из вашей оболочки. Каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.4059Вы указали новый источник маркетплейса с помощью [`--marketplace <source>` в команде установки](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command) — в сессии или из оболочки. Каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, уже добавленный вами из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.
4051 4060
4052```text theme={null}4061```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.4062Marketplace "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 4064
4056**Что делать:**4065**Что делать:**
4057 4066
4058* Если маркетплейс, который вы уже добавили, это тот, который вам нужен, установите из него по имени: `/plugin install <plugin>@<name>`4067* Если нужен уже добавленный маркетплейс, установите из него плагин по имени: `/plugin install <plugin>@<name>`
4059* Чтобы переключиться на новый источник, запустите `/plugin marketplace remove <name>`, затем повторите попытку установки4068* Чтобы переключиться на новый источник, выполните `/plugin marketplace remove <name>`, затем повторите попытку установки
4060 4069
4061<h3 id="plugin-command-references-user-config">4070<h3 id="plugin-command-references-user-config">
4062 Plugin command references user\_config in a shell command4071 Команда плагина ссылается на user\_config в shell-команде
4063</h3>4072</h3>
4064 4073
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 значение подставлялось в команду оболочки.4074Команда хука плагина, [монитора](/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 4075
4067Формулировка зависит от того, какая поверхность ссылалась на опцию. Хук в форме оболочки сообщает:4076Формулировка зависит от того, в каком месте используется ссылка на параметр. Хук в shell-форме сообщает:
4068 4077
4069```text theme={null}4078```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}4079Hook 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```4080```
4072 4081
4073Monitor сообщает:4082Монитор сообщает:
4074 4083
4075```text theme={null}4084```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.4085Monitor "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 4093
4085**Что делать:**4094**Что делать:**
4086 4095
4087* Для хука добавьте массив `args`, чтобы он выполнялся в [exec форме](/docs/ru/hooks#exec-form-and-shell-form), где каждый `${user_config.KEY}` становится одним аргументом без оболочки между ними. Или удалите ссылку и прочитайте переменную окружения `$CLAUDE_PLUGIN_OPTION_<KEY>` внутри скрипта4096* Для хука добавьте массив `args`, чтобы он выполнялся в [exec-форме](/docs/ru/hooks#exec-form-and-shell-form), где каждый `${user_config.KEY}` становится одним аргументом без участия оболочки. Или уберите ссылку и читайте переменную окружения `$CLAUDE_PLUGIN_OPTION_<KEY>` внутри скрипта
4088* Для monitor удалите ссылку и пусть скрипт monitor прочитает значение из файла конфигурации4097* Для монитора уберите ссылку, и пусть скрипт монитора читает значение из файла конфигурации
4089* Для `headersHelper` переместите `${user_config.KEY}` в поле `headers` сервера, которое не анализируется оболочкой, или прочитайте значение внутри скрипта помощника4098* Для `headersHelper` перенесите `${user_config.KEY}` в поле `headers` сервера, которое не разбирается оболочкой, или читайте значение внутри вспомогательного скрипта
4090 4099
4091<h3 id="plugin-archive-integrity-check-failed">4100<h3 id="plugin-archive-integrity-check-failed">
4092 Plugin archive integrity check failed4101 Проверка целостности архива плагина не пройдена
4093</h3>4102</h3>
4094 4103
4095Запись маркетплейса плагина использует [источник `archive`](/docs/ru/plugins/marketplace-reference#archive-plugin-source) с закреплением `sha256`, и дайджест загруженного файла не совпадает с закреплением. Claude Code отказывает в установке, поэтому ничего не меняется в кэше плагинов. Несовпадение имеет три возможные причины:4104Запись плагина в маркетплейсе использует [источник `archive`](/docs/ru/plugins/marketplace-reference#archive-plugin-source) с закреплённым `sha256`, и хеш загруженного файла не совпадает с закреплённым значением. Claude Code отказывается от установки, поэтому в кэше плагинов ничего не меняется. У несовпадения три возможные причины:
4096 4105
4097* Файл по URL-адресу изменился после того, как автор вычислил закрепление4106* Файл по URL изменился после того, как автор вычислил закреплённое значение
4098* Автор ввёл неправильный дайджест в запись маркетплейса4107* Автор указал неверный хеш в записи маркетплейса
4099* URL-адрес служит другим файлом, чем тот, который автор закрепил4108* URL отдаёт не тот файл, который закрепил автор
4100 4109
4101```text theme={null}4110```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.4111Plugin 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 4113
4105**Что делать:**4114**Что делать:**
4106 4115
4107* Если вы публикуете плагин, пересчитайте дайджест точного файла, который служит URL-адрес, например с помощью `shasum -a 256 my-plugin.zip`, или `Get-FileHash -Algorithm SHA256 my-plugin.zip` в PowerShell, и обновите `sha256` в записи маркетплейса4116* Если вы публикуете плагин, заново вычислите хеш именно того файла, который отдаёт URL, например с помощью `shasum -a 256 my-plugin.zip` или `Get-FileHash -Algorithm SHA256 my-plugin.zip` в PowerShell, и обновите `sha256` в записи маркетплейса
4108* Если вы устанавливаете плагин, запустите `/plugin marketplace update <name>` для обновления каталога на случай, если запись была исправлена, затем повторите попытку установки4117* Если вы устанавливаете плагин, выполните `/plugin marketplace update <name>`, чтобы обновить каталог на случай, если запись исправили, затем повторите попытку установки
4109* Если дайджесты всё ещё не совпадают после обновления, спросите владельца маркетплейса, какой файл они закрепили перед установкой4118* Если хеши по-прежнему не совпадают после обновления, перед установкой спросите владельца маркетплейса, какой файл он закрепил
4110 4119
4111<h3 id="path-escapes-plugin-directory">4120<h3 id="path-escapes-plugin-directory">
4112 Path escapes plugin directory4121 Путь выходит за пределы каталога плагина
4113</h3>4122</h3>
4114 4123
4115Путь компонента плагина, объявленный в `plugin.json` плагина или в его [записи маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries), разрешается вне собственной директории плагина. Claude Code отбрасывает этот путь и загружает остальную часть плагина. Имя компонента в сообщении, такое как `commands` или `hooks`, называет поле, которое объявило путь.4124Путь компонента плагина, объявленный в `plugin.json` плагина или в его [записи маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries), указывает за пределы собственного каталога плагина. Claude Code отбрасывает этот путь и загружает остальную часть плагина. Имя компонента в сообщении, например `commands` или `hooks`, указывает поле, в котором объявлен путь.
4116 4125
4117```text theme={null}4126```text theme={null}
4118commands path escapes plugin directory: ./../shared.md4127commands path escapes plugin directory: ./../shared.md
4119```4128```
4120 4129
4121В выводе команды `claude plugin` та же ошибка читается как `Path escapes plugin directory: ./../shared.md (commands)`.4130В выводе команд `claude plugin` та же ошибка звучит как `Path escapes plugin directory: ./../shared.md (commands)`.
4122 4131
4123Claude Code отклоняет как путь, который указывает вне плагина в том виде, в котором он написан, например `../shared-utils`, так и символическую ссылку, которая ведёт вне плагина и не является одной из [правил символических ссылок маркетплейса](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks), которые разрешены. Для символической ссылки сообщение также указывает, где разрешается путь:4132Claude Code отклоняет как путь, который в записанном виде указывает за пределы плагина, например `../shared-utils`, так и символическую ссылку, которая ведёт за пределы плагина и не разрешена [правилами символических ссылок маркетплейса](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks). Для символической ссылки сообщение также указывает, куда разрешается путь:
4124 4133
4125```text theme={null}4134```text theme={null}
4126commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory4135commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory
4127```4136```
4128 4137
4129На macOS и Linux Claude Code также отклоняет путь компонента, который содержит обратную косую черту где-либо в нём, даже когда путь остаётся внутри плагина. Плагин, чьи пути компонентов используют разделители в стиле Windows, загружается на Windows и вызывает это отклонение на других платформах:4138В macOS и Linux Claude Code также отклоняет путь компонента, содержащий обратную косую черту в любом месте, даже если путь остаётся внутри плагина. Плагин, пути компонентов которого используют разделители в стиле Windows, загружается в Windows и вызывает этот отказ на других платформах:
4130 4139
4131```text theme={null}4140```text theme={null}
4132commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform4141commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform
4133```4142```
4134 4143
4135До версии v2.1.251 Claude Code загружала путь `commands`, объявленный в записи маркетплейса, даже когда он указывал вне директории плагина.4144До v2.1.251 Claude Code загружал путь `commands`, объявленный в записи маркетплейса, даже если он указывал за пределы каталога плагина.
4136 4145
4137До версии v2.1.257 проверка смотрела только на написание пути, а не на то, где ведёт символическая ссылка.4146До v2.1.257 проверка учитывала только написание пути, а не то, куда ведёт символическая ссылка.
4138 4147
4139**Что делать:**4148**Что делать:**
4140 4149
4141* Переместите упомянутый файл внутри директории плагина и укажите на него с помощью относительного пути `./`4150* Переместите указанный файл внутрь каталога плагина и укажите на него относительным путём с `./`
4142* Если путь является символической ссылкой на файл вне плагина, замените символическую ссылку копией файла4151* Если путь — символическая ссылка на файл вне плагина, замените символическую ссылку копией файла
4143* Если сообщение говорит, что путь содержит обратную косую черту, напишите путь с прямыми косыми чертами, например `./commands/deploy.md`4152* Если в сообщении сказано, что путь содержит обратную косую черту, запишите путь с прямыми косыми чертами, например `./commands/deploy.md`
4144* Для совместного использования файлов с другими плагинами в одном маркетплейсе свяжите их с помощью символической ссылки внутри директории плагина, следуя [правилам символических ссылок](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)4153* Чтобы совместно использовать файлы с другими плагинами того же маркетплейса, свяжите их символической ссылкой внутри каталога плагина, следуя [правилам символических ссылок](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)
4145 4154
4146<h3 id="path-could-not-be-checked">4155<h3 id="path-could-not-be-checked">
4147 Path could not be checked4156 Путь не удалось проверить
4148</h3>4157</h3>
4149 4158
4150Claude Code попросила операционную систему проверить, существует ли путь плагина, и получила ошибку, отличную от «не найдено», поэтому она не загружает то, что называет путь. Сколько плагина загружается, зависит от того, какой путь не удался:4159Claude Code запросил у операционной системы, существует ли путь плагина, и получил ошибку, отличную от «не найдено», поэтому не загружает то, на что указывает путь. Какая часть плагина загрузится, зависит от того, какой путь не прошёл проверку:
4151 4160
4152* Одно из [расположений компонентов по умолчанию](/docs/ru/plugins/manifest-reference#standard-layout) плагина, такое как папка `skills/`, файл `monitors/monitors.json` или [`SKILL.md` в корне плагина](/docs/ru/plugins/components#skills): остальные компоненты плагина всё ещё загружаются4161* Одно из [расположений компонентов плагина по умолчанию](/docs/ru/plugins/manifest-reference#standard-layout), например папка `skills/`, файл `monitors/monitors.json` или [`SKILL.md` в корне плагина](/docs/ru/plugins/components#skills): остальные компоненты плагина по-прежнему загружаются
4153* Собственная директория плагина: ничего из этого плагина не загружается4162* Собственный каталог плагина: ничего из этого плагина не загружается
4154 4163
4155Вы не видите эту ошибку для пути, который вообще не существует. В `/plugin` ошибка появляется под плагином и называет путь и код, который вернула операционная система:4164Для пути, который вообще не существует, эта ошибка не появляется. В `/plugin` ошибка отображается под плагином и указывает путь и код, который вернула операционная система:
4156 4165
4157```text theme={null}4166```text theme={null}
4158skills path could not be checked: /home/user/my-plugin/skills (ELOOP)4167skills path could not be checked: /home/user/my-plugin/skills (ELOOP)
4159```4168```
4160 4169
4161В `claude plugin list` та же ошибка читается как `Path not found: /home/user/my-plugin/skills (skills, ELOOP)`.4170В `claude plugin list` та же ошибка звучит как `Path not found: /home/user/my-plugin/skills (skills, ELOOP)`.
4162 4171
4163Причины, которые вызывают эту ошибку, включают:4172К причинам этой ошибки относятся:
4164 4173
4165* `ELOOP`: символическая ссылка в пути указывает на себя или образует цикл4174* `ELOOP`: символическая ссылка в пути указывает сама на себя или образует цикл
4166* `EIO` или `ESTALE`: путь находится на сетевом монтировании, которое нарушено или устарело4175* `EIO` или `ESTALE`: путь находится на сетевом подключении, которое повреждено или устарело
4167* `EACCES`: один из директорий выше пути отказывает вам в разрешении на его обход4176* `EACCES`: один из каталогов выше пути не даёт вам прав доступа для его прохождения
4168 4177
4169**Что делать:**4178**Что делать:**
4170 4179
4171* Замените символическую ссылку, которая указывает на себя, на реальную папку, или удалите её4180* Замените символическую ссылку, указывающую сама на себя, настоящей папкой или удалите её
4172* Если путь находится на сетевом монтировании, переподключите общий ресурс4181* Если путь находится на сетевом подключении, переподключите общий ресурс
4173* Если код `EACCES`, восстановите ваше разрешение на выполнение в директориях выше пути4182* Если код — `EACCES`, восстановите право на выполнение для каталогов выше пути
4174* Запустите `/reload-plugins` после исправления пути, или перезагрузите Claude Code, чтобы загрузить плагин или компонент4183* После исправления пути выполните `/reload-plugins` или перезапустите Claude Code, чтобы загрузить плагин или компонент
4175 4184
4176До версии v2.1.265 Claude Code рассматривала папку компонента по умолчанию, которую она не могла проверить, как отсутствующую и загружала плагин без этого компонента, без ошибки.4185До v2.1.265 Claude Code считал папку компонента по умолчанию, которую не удалось проверить, отсутствующей и загружал плагин без этого компонента, не выводя ошибку.
4177 4186
4178<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">4187<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">
4179 Marketplace entry path does not stay inside the marketplace directory4188 Путь записи маркетплейса не остаётся внутри каталога маркетплейса
4180</h3>4189</h3>
4181 4190
4182[Запись маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries) плагина объявляет путь источника, который Claude Code не может разрешить в расположение внутри собственной директории маркетплейса, поэтому плагин не устанавливается и не загружается. Отказ охватывает:4191[Запись маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries) плагина объявляет путь источника, который Claude Code не может разрешить в расположение внутри собственного каталога маркетплейса, поэтому плагин не устанавливается и не загружается. Отказ распространяется на:
4183 4192
4184* Путь записи, который является абсолютным, поднимается из маркетплейса с помощью `..`, или написан как сетевой путь4193* Путь записи, который является абсолютным, выходит за пределы маркетплейса с помощью `..` или записан как сетевой путь
4185* На macOS и Linux путь записи, который содержит обратную косую черту где-либо после начального `./`4194* В macOS и Linux — путь записи, содержащий обратную косую черту в любом месте после начального `./`
4186* Запись в маркетплейсе, полученном из удалённого источника, такого как git или URL, которая достигает своей цели через символическую ссылку, разрешающуюся вне директории маркетплейса4195* Запись в маркетплейсе, полученном из удалённого источника, например 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)4196* Относительную запись в маркетплейсе, добавленном по прямому URL на его `marketplace.json`: Claude Code загружает только этот файл, поэтому локальных файлов плагина, на которые мог бы указывать путь, нет. См. [Плагины с относительными путями не работают в маркетплейсах на основе URL](/docs/ru/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)
4188 4197
4189`claude plugin install` сообщает об отказе следующим образом:4198`claude plugin install` сообщает об отказе так:
4190 4199
4191```text theme={null}4200```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)4201Cannot 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```4202```
4194 4203
4195Когда запись уже установленного плагина не проходит ту же проверку, `claude plugin list` показывает плагин как `failed to load` с:4204Если запись уже установленного плагина не проходит ту же проверку, `claude plugin list` показывает плагин как `failed to load` с сообщением:
4196 4205
4197```text theme={null}4206```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.4207Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.
4200 4209
4201**Что делать:**4210**Что делать:**
4202 4211
4203* Если вы поддерживаете маркетплейс, напишите `source` записи как простой относительный путь с прямыми косыми чертами, например `./plugins/my-plugin`, и держите любую символическую ссылку, которую он пересекает, указывающей внутри директории маркетплейса4212* Если вы сопровождаете маркетплейс, запишите `source` записи как простой относительный путь с прямыми косыми чертами, например `./plugins/my-plugin`, и следите, чтобы любая символическая ссылка на этом пути указывала внутрь каталога маркетплейса
4204* Если вы добавили маркетплейс из прямого URL-адреса, относительные записи не могут разрешиться. Попросите автора маркетплейса использовать [другой источник плагина](/docs/ru/plugins/marketplace-reference#plugin-sources), или добавьте маркетплейс из его репозитория git вместо этого4213* Если вы добавили маркетплейс по прямому URL, относительные записи не могут быть разрешены. Попросите автора маркетплейса использовать [другой источник плагина](/docs/ru/plugins/marketplace-reference#plugin-sources) или вместо этого добавьте маркетплейс из его git-репозитория
4205 4214
4206<h3 id="failed-to-load-marketplace-configuration">4215<h3 id="failed-to-load-marketplace-configuration">
4207 Failed to load marketplace configuration4216 Failed to load marketplace configuration
4208</h3>4217</h3>
4209 4218
4210Claude Code хранит маркетплейсы плагинов, которые вы добавили, в файле реестра в `~/.claude/plugins/known_marketplaces.json`. Команда плагина, которой нужен реестр, такая как `claude plugin install`, не выполняется с одним из двух сообщений, когда Claude Code не может использовать файл:4219Claude Code хранит добавленные вами маркетплейсы плагинов в файле реестра `~/.claude/plugins/known_marketplaces.json`. Команда плагина, которой нужен реестр, например `claude plugin install`, завершается одним из двух сообщений, если Claude Code не может использовать этот файл:
4211 4220
4212* `Failed to load marketplace configuration`: файл не является действительным JSON, или не может быть прочитан. Пустой файл также не работает таким образом.4221* `Failed to load marketplace configuration`: файл существует, но не является допустимым JSON или не может быть прочитан. Пустой файл также приводит к этой ошибке.
4213* `Marketplace configuration file is corrupted`: файл является действительным JSON, но его содержимое не соответствует схеме реестра.4222* `Marketplace configuration file is corrupted`: файл является допустимым JSON, но его содержимое не соответствует схеме реестра.
4214 4223
4215С пустым файлом `claude plugin install` сообщает:4224С пустым файлом `claude plugin install` сообщает:
4216 4225
4218✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF4227✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF
4219```4228```
4220 4229
4221До версии v2.1.246 `claude plugin install` не сообщала об этой ошибке.4230До v2.1.246 `claude plugin install` не сообщал об этой ошибке.
4222 4231
4223**Что делать:**4232**Что делать:**
4224 4233
4225* Откройте `~/.claude/plugins/known_marketplaces.json` и исправьте JSON, или исправьте записи, которые сообщение называет как не соответствующие схеме реестра4234* Откройте `~/.claude/plugins/known_marketplaces.json` и исправьте JSON или исправьте записи, которые в сообщении указаны как не соответствующие схеме реестра
4226* Если вы не можете исправить это, удалите файл или замените его содержимое на `{}`, затем добавьте каждый маркетплейс снова с помощью `claude plugin marketplace add <source>`. Claude Code повторно регистрирует маркетплейсы, которые ваш пользователь или управляемые параметры объявляют в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), в следующий раз, когда вы запустите его в папке, которую вы доверили.4235* Если исправить файл не удаётся, удалите его или замените его содержимое на `{}`, затем заново добавьте каждый маркетплейс с помощью `claude plugin marketplace add <source>`. Claude Code повторно регистрирует маркетплейсы, объявленные в ваших пользовательских или управляемых настройках в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), при следующем запуске в папке, которой вы доверяете.
4227 4236
4228<h3 id="plugin-is-required-by-your-organization">4237<h3 id="plugin-is-required-by-your-organization">
4229 Plugin is required by your organization4238 Плагин обязателен в вашей организации
4230</h3>4239</h3>
4231 4240
4232Вы запустили `claude plugin disable`, или использовали вкладку `/plugin` **Installed**, чтобы отключить [плагин, синхронизированный с claude.ai](/docs/ru/plugins/loading#synced-plugins), который ваша организация отмечает как обязательный:4241Вы выполнили `claude plugin disable` или использовали вкладку **Installed** в `/plugin`, чтобы отключить [плагин, синхронизированный из claude.ai](/docs/ru/plugins/loading#synced-plugins), который ваша организация отметила как обязательный:
4233 4242
4234```text theme={null}4243```text theme={null}
4235Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.4244Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.
4236```4245```
4237 4246
4238Claude Code ничего не сохраняет и плагин остаётся включённым.4247Claude Code ничего не сохраняет, и плагин остаётся включённым.
4239 4248
4240Когда вы пытаетесь отключить плагин, от которого зависит обязательный плагин, Claude Code отказывает таким же образом, с сообщением, называющим обязательный плагин, который его требует.4249При попытке отключить плагин, от которого зависит обязательный плагин, Claude Code отказывает так же, с сообщением, в котором указан обязательный плагин, которому он нужен.
4241 4250
4242**Что делать:**4251**Что делать:**
4243 4252
4244* Попросите администратора вашей организации claude.ai изменить статус обязательности плагина на claude.ai4253* Попросите администратора вашей организации claude.ai изменить статус обязательности плагина на claude.ai
4245 4254
4246<h3 id="plugin-was-not-uninstalled">4255<h3 id="plugin-was-not-uninstalled">
4247 Plugin was not uninstalled4256 Плагин не был удалён
4248</h3>4257</h3>
4249 4258
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).4259Вы выполнили [`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 4260
4252Когда Claude Code удалила запись плагина из `enabledPlugins` и прочитала файлы параметров этой области обратно, либо плагин всё ещё был включён там, либо файл, который мог бы его включить, не мог быть прочитан или проверен. Удаление сохранённых опций, секретов и данных плагина, пока запись параметров могла бы его включить обратно, привело бы к их потере, поэтому удаление останавливается вместо этого: плагин остаётся установленным и ничто, что он сохранил, не удаляется.4261Когда Claude Code удалил запись плагина из `enabledPlugins` и заново прочитал файлы настроек этой области действия, либо плагин всё ещё оказался включён там, либо файл, который мог бы его включить, не удалось прочитать или проверить. Удаление сохранённых параметров, секретов и данных плагина, пока запись в настройках может снова его включить, привело бы к их потере, поэтому удаление останавливается: плагин остаётся установленным, и ничего из сохранённого им не удаляется.
4253 4262
4254```text theme={null}4263```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.4264✘ 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```4265```
4257 4266
4258Середина сообщения называет файл и причину:4267Средняя часть сообщения указывает файл и причину:
4259 4268
4260* `it is still switched on in <file>, although the settings change reported no error`: запись параметров сообщила об успехе, но запись всё ещё там при чтении файла обратно4269* `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>)`: файл не мог быть сохранён по причине в скобках4270* `it is still switched on in <file>, and the settings change failed (<error>)`: файл не удалось сохранить по причине, указанной в скобках
4262* `<file> is there and could not be read`: файл существует, но не мог быть прочитан как параметры, например потому что это не действительный JSON, поэтому он может всё ещё включить плагин4271* `<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`, которая его содержит, это ссылка, которая ведёт на сетевое расположение, или потому что она не могла проверить этот путь4272* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`: Claude Code не прочитал файл настроек проекта или локальных настроек, потому что этот файл или содержащая его папка `.claude` является ссылкой, ведущей в сетевое расположение, или потому что не удалось проверить этот путь
4264 4273
4265`claude plugin uninstall` выходит с кодом 1, и с `--json` результат несёт `failureCode: "settings_still_on"`. `/plugin` показывает то же сообщение.4274`claude plugin uninstall` завершается с кодом 1, а с `--json` результат содержит `failureCode: "settings_still_on"`. `/plugin` показывает то же сообщение.
4266 4275
4267**Что делать:**4276**Что делать:**
4268 4277
4269* Следуйте последнему предложению сообщения: исправьте или замените файл параметров, который оно называет, или удалите запись плагина из `enabledPlugins` в этом файле самостоятельно, затем запустите удаление снова4278* Следуйте последнему предложению сообщения: исправьте или замените указанный файл настроек либо самостоятельно удалите запись плагина из `enabledPlugins` в этом файле, затем снова выполните удаление
4270 4279
4271<h2 id="tool-errors">4280<h2 id="tool-errors">
4272 Ошибки инструментов4281 Ошибки инструментов