百积木文档
开发指南平台应用、模块与 Bundle 开发

Bundle 失败恢复与回滚

读取失败原因,预览完整恢复计划,恢复到精确版本或回滚到成功基线,并验证最终状态。

Bundle 安装或升级失败后,部分资源可能已经生效。平台保留失败操作与资源执行账,普通升级可能返回 “Runtime 已有未完成的 Bundle 操作”。发布修复版本不会自动替换原操作的不可变目标,也不会自动释放占用。

选择处理方式

方式用途
普通重试原目标没有改变,临时故障已经消除,按原操作允许的重试路径继续
向前恢复原操作停止后,依据成功基线、执行回执和实际资源,恢复到明确的修复版本
回滚撤销原失败计划,恢复变更前的成功基线;不是任意选择一个旧版本

接口或类型合同不兼容属于确定性错误,重复提交相同内容通常仍会失败。先修正责任方并创建所需不可变版本。 不要删除操作记录、直接清空活动操作 ID,或把部分资源成功当成整个 Bundle 成功。

Manager

工作区管理员进入 Bundle 管理,在失败安装上选择 恢复回滚

  1. 页面读取当前失败操作与原始错误,自动携带安装身份及失败 operationId。
  2. 恢复页面列出原失败计划的全部参与 Bundle。默认保留原目标;使用修复版本时填写发布方提供的精确版本 ID。
  3. 点击预览,核对各 Bundle 目标版本、资源变化、跨 Bundle 方法授权与阻塞原因。
  4. 确认执行,观察资源进度及最终状态。重试本次恢复时使用已经冻结的同一请求。

回滚尚未启用、成功基线缺失、插件需要补偿、资源结果未知或配置已经改变时,页面会展示后端阻塞原因。 启用回滚是平台运维动作;工作区管理员不能通过界面绕过协议检查。

CLI 与开发 Agent

先运行 baijimu --versionbaijimu bundle --help。只有本机帮助包含以下命令时才使用; 缺少命令时升级到已发布且支持该能力的 CLI,不根据本文猜测旧版本参数。

baijimu bundle get <bundle> --workspace-id <workspaceId> --json
baijimu bundle recovery-preview --help
baijimu bundle recover --help

预览并保存完整请求:

baijimu bundle recovery-preview <bundle> --workspace-id <workspaceId> \
  --version-id <exactBundleVersionId> --json > recovery-preview.json

CLI 从当前安装自动读取失败 operationId,并从后端发现完整计划。省略 --version-id 时保留原失败目标; 多个参与 Bundle 都需要修复时,可用 --targets @targets.json 提供完整数组,每项包含 installIdbundleVersionId。这些身份必须来自本次安装及后端记录。后端拒绝遗漏成员、任意新增成员和未经证明的资源漂移。

目标版本需要未经市场验证的直接分发确认时,核对发布方与分发授权后,在预览命令中增加 --confirm-unverified。这不会绕过分发、付费权益或工作区权限检查。

核对预览输出中的全部目标、资源变化和授权后执行:

baijimu bundle recover --workspace-id <workspaceId> \
  --request @recovery-preview.json --confirm --wait --timeout-seconds 300

预览包含跨 Bundle 方法访问时,执行还需要 --confirm-runtime-method-access。 AI 必须遵守用户授权范围,不能为了通过校验自动添加确认参数。若执行失败,先检查原因; 需要重试同一次恢复时重新提交同一个预览文件,不重新选择最新版本,不把新恢复 operationId 替换进原请求。

回滚使用独立的预览与执行命令:

baijimu bundle rollback-preview <bundle> --workspace-id <workspaceId> --json > rollback-preview.json
baijimu bundle rollback --workspace-id <workspaceId> \
  --request @rollback-preview.json --confirm --wait

canRollback=false 表示存在阻塞,不能执行。首次安装回滚可能移除已创建资源,必须明确核对影响。 CLI 超时不会取消后台操作,使用 bundle get 查询,不要盲目重复发起新操作。

接口与权限

Manager 和 CLI 使用相同的恢复流程,均要求目标工作区管理权限和 Runtime 访问权限。 命令行工具自动处理工作区认证上下文,不应手工复制令牌或拼接内部服务地址。

恢复请求的 targets 是包含 installIdbundleVersionId 的数组;回滚目标来自原成功基线,调用方不能改写。 expectedOperationId 是并发保护和审计关联,预览不预约状态,执行时仍重新校验。 恢复计划有独立且可复用的操作身份,原失败记录保留。平台内智能体只有被授予对应控制面工具时才能执行; 普通 Runtime 业务方法调用权限不等于 Bundle 管理权限。

成功判定

必须同时检查本次操作成功、活动操作已清空、目标版本已提交。正常恢复最终为 ACTIVE; 撤销首次安装最终为 UNINSTALLED。请求被接受、部分资源 VERIFIED 或预览成功都不能代替最终验证。 恢复后再验证原业务能力及后续正常升级,保留原失败操作与恢复操作的审计身份。

本页内容