# 错误代码

每个错误都有固定的代码、消息和解决方法。代码永远不会被翻译。

## E_INTERNAL

HTTP 500 · exit 1

GenPM 内部出错了。

**解决方法:** 使用 --verbose 重试；如果问题仍然存在，请附上 requestId 报告。

## E_BAD_REQUEST

HTTP 400 · exit 2

请求无效：…

**解决方法:** 请检查参数后重试。

## E_USAGE

HTTP 400 · exit 2

用法无效：…

**解决方法:** 运行 genpm --help 查看可用选项。

## E_CONFIRM_REQUIRED

HTTP 400 · exit 2

需要确认：…

**解决方法:** 请在交互式终端中运行，或传入 … 进行确认。

## E_PAYLOAD_TOO_LARGE

HTTP 413 · exit 2

请求体过大。

**解决方法:** 最多发送 16 KB。

## E_NOT_FOUND

HTTP 404 · exit 3

未找到 …。

**解决方法:** 请检查拼写，或使用 genpm search <关键词> 搜索。

## E_NO_MATCHING_VERSION

HTTP 404 · exit 3

… 没有匹配 … 的版本。

**解决方法:** 运行 genpm info … 查看已发布的版本。

## E_DEST_CONFLICT

HTTP 409 · exit 4

… 已存在且不为空。

**解决方法:** 使用 --dest <dir> 或 --force（会先备份）。

## E_RANGE_UNSATISFIED

HTTP 409 · exit 4

没有版本能满足所有范围：…

**解决方法:** 请先安装冲突包的兼容版本，或固定为其他版本。

## E_ALREADY_INSTALLED

HTTP 409 · exit 4

… … 已安装。

**解决方法:** 无需操作。使用 genpm list 查看已安装的包。

## E_VERSION_EXISTS

HTTP 409 · exit 4

…@… 已发布。

**解决方法:** 版本不可变：请在 genpm.json 中提升版本号并创建新标签。

## E_DRIFT

HTTP 409 · exit 4

… 在 …中有本地修改。

**解决方法:** 使用 --keep-code 保留你的代码，或使用 --force 强制删除。

## E_REQUIRED_BY

HTTP 409 · exit 4

… 依赖 …。

**解决方法:** 请先移除依赖它的包。

## E_BUSY

HTTP 409 · exit 4

另一个 GenPM 进程正在修改此项目。

**解决方法:** 请等待其完成。如果没有进程在运行，请删除 .genpm/.lock。

## E_PLAN_STALE

HTTP 409 · exit 4

自计划生成以来项目已发生变化。

**解决方法:** 请重新生成计划（试运行）并确认。

## E_NETWORK

HTTP 502 · exit 5

无法连接到 …。

**解决方法:** 请检查网络连接、代理或 GENPM_REGISTRY 后重试。

## E_UPSTREAM_GIT

HTTP 502 · exit 5

Git 主机出错：…

**解决方法:** 请确认使用你的 Git 凭据可以访问该仓库，然后重试。

## E_RATE_LIMITED

HTTP 429 · exit 5

请求过多。

**解决方法:** 请等待 …后重试。

## E_READ_ONLY

HTTP 503 · exit 5

注册表正在维护，处于只读模式。

**解决方法:** 安装仍可正常使用。请稍后再发布；最新状态见 genpm.net。

## E_INTEGRITY

HTTP 422 · exit 6

… 完整性校验失败：…

**解决方法:** 请勿使用此包。如果问题持续，请通过 genpm.net/report 报告。

## E_SIGNATURE

HTTP 422 · exit 6

… 的注册表签名无效。

**解决方法:** 请勿安装。请更新 GenPM（新的签名密钥），如果问题持续请报告。

## E_PATH_UNSAFE

HTTP 422 · exit 6

不安全的路径 …（…）。

**解决方法:** 请使用项目内的相对路径，不得包含 ..、绝对路径或保留目录。

## E_AUTORUN_FILE

HTTP 422 · exit 6

… 包含会自动运行的文件：…。

**解决方法:** 这些文件永远不会被安装。请让作者删除它们，或仅对已验证的发布者使用 --allow-autorun。

## E_SCAN_FAILED

HTTP 422 · exit 6

安全扫描拒绝了 …：…

**解决方法:** 请修复 genpm validate 列出的问题，然后发布新版本。

## E_INSECURE_PERMS

HTTP 400 · exit 6

… 可被其他用户读取。

**解决方法:** 运行 chmod 600 …。

## E_QUARANTINED

HTTP 451 · exit 6

… 正在接受安全审核。

**解决方法:** 请稍后再试或选择其他包。审核在 24 个工作小时内完成。

## E_REF_MUTABLE

HTTP 422 · exit 6

… 不是不可变引用。

**解决方法:** 请使用 Git 标签或完整的 40 位提交 SHA，不要使用分支。

## E_ADVISORY

HTTP 409 · exit 6

… … 存在严重程度为 … 的安全公告。

**解决方法:** 请升级到 … 或更高版本。

## E_TOO_LARGE

HTTP 422 · exit 6

… 超出大小限制：…

**解决方法:** 使用 .genpmignore 排除文件；如果包是正当的，可用 --max-size 提高限制。

## E_MANIFEST_INVALID

HTTP 422 · exit 6

genpm.json 无效。

**解决方法:** 请修正详情中列出的字段。运行 genpm validate 获取完整报告。

## E_LOCK_INVALID

HTTP 422 · exit 6

genpm.lock 无效或已损坏。

**解决方法:** 请从 Git 恢复；切勿手动编辑 genpm.lock。

## E_NAME_MISMATCH

HTTP 422 · exit 6

清单名称 … 与 … 不一致。

**解决方法:** 请使用 genpm.json 中声明的名称发布。

## E_REF_NOT_FOUND

HTTP 422 · exit 3

… 中不存在 …。

**解决方法:** 创建并推送标签：git tag … && git push --tags。

## E_REF_NOT_PUSHED

HTTP 422 · exit 4

… 不在远程仓库中，或指向了另一个提交。

**解决方法:** 使用 git push origin … 推送标签。

## E_REPO_NOT_ALLOWED

HTTP 422 · exit 7

… 不属于作用域 @…。

**解决方法:** 请从与该作用域关联的 GitHub 所有者的仓库发布。

## E_REPO_CHANGED

HTTP 422 · exit 6

… 背后的仓库已变更（可能是仓库劫持）。

**解决方法:** 请发邮件至 hello@genpm.net，主题为 [SECURITY]，以转移该包。

## E_CONTEXT_MISSING

HTTP 422 · exit 6

AI 规则文件 … 不存在。

**解决方法:** 创建 …（genpm init 可生成模板），或在 genpm.json 中设置 x。

## E_CONTEXT_TOO_LARGE

HTTP 422 · exit 6

AI 规则文件 … 超过 16 KB。

**解决方法:** 请精简：让规则聚焦于目的、结构、集成、约定和禁止事项。

## E_AUTH

HTTP 401 · exit 7

你尚未登录，或令牌无效、已过期。

**解决方法:** 运行 genpm login（在 CI 中设置 GENPM_TOKEN）。

## E_FORBIDDEN_SCOPE

HTTP 403 · exit 7

你无法发布到 @…。

**解决方法:** 请向 @… 的所有者申请发布权限，或使用你自己的作用域。

## E_GIT_MISSING

HTTP 500 · exit 8

未安装 Git，或版本低于 2.25。

**解决方法:** 请安装 Git 2.25 或更高版本后重试。

## E_NODE_VERSION

HTTP 500 · exit 8

GenPM 需要 Node.js 20.11 或更高版本（当前为 …）。

**解决方法:** 请更新 Node.js，或安装无需 Node.js 的独立 genpm 二进制文件：genpm.net/docs/install

## E_UPGRADE_UNSUPPORTED

HTTP 400 · exit 8

此 GenPM 副本是通过 … 安装的：genpm upgrade 只能更新独立二进制文件。

**解决方法:** 请使用 … 更新，或从 genpm.net/docs/install 安装二进制文件。

## E_UPGRADE_PERMISSION

HTTP 500 · exit 8

无法替换 …：权限被拒绝。

**解决方法:** 请以该文件所有者的身份运行 genpm upgrade，或使用 genpm.net/docs/install 中的脚本重新安装。

## E_UPGRADE_INTEGRITY

HTTP 422 · exit 6

下载的 … 与其发布的 SHA-256 校验和不一致。

**解决方法:** 未做任何更改。请稍后重试；如果再次发生，请发送邮件至 hello@genpm.net，主题为 [SECURITY]。

## E_MCP_SERVE_UNAVAILABLE

HTTP 500 · exit 8

genpm mcp serve 仅包含在独立的 genpm 二进制文件中。

**解决方法:** 请使用 npx -y @genpm/mcp 作为 MCP 命令（genpm mcp setup 会自动配置），或从 genpm.net/docs/install 安装二进制文件。

## E_NOT_A_PROJECT

HTTP 400 · exit 8

在 … 中未找到项目。

**解决方法:** 请在项目内（包含 package.json 或 .git）运行该命令，或传入 --cwd <dir>。
