jlcodes99/cockpit-tools · error

instances.form.modelRouting.restartRollbackFailed

instances.form.modelRouting.restartRollbackFailed

Error message

${String(restartError)}\n新路由启动失败,恢复原配置后仍无法启动:${String(rollbackError)}

What it means

Composite failure in InstancesManager's config-save flow: restarting the Codex instance with the new model routing failed, the code rolled back to the original configuration, but the post-rollback restart ALSO failed. The original restart error and the rollback restart error are joined into one message so both causes are visible; the instance is left unable to start under either config.

Source

Thrown at src/components/InstancesManager.tsx:1601

          } catch (restartError) {
            if (!formCodexQuickConfig) throw restartError;
            try {
              await saveCodexInstanceConfiguration({
                instanceId: editing.id,
                bindAccountId: editing.bindAccountId ?? null,
                modelRouting: editing.modelRouting ?? null,
                deferBindAccountApplication: true,
                experimentalModelCatalogEnabled:
                  formCodexQuickConfig.experimental_model_catalog_enabled,
                experimentalModelCatalogModels:
                  formCodexQuickConfig.experimental_model_catalog_models,
                experimentalModelCatalogDefaultModelId:
                  formCodexQuickConfig.experimental_model_catalog_default_model_id ??
                  null,
              });
              await startInstance(editing.id);
            } catch (rollbackError) {
              throw new Error(
                `${String(restartError)}\n${t(
                  "instances.form.modelRouting.restartRollbackFailed",
                  "新路由启动失败,恢复原配置后仍无法启动:",
                )}${String(rollbackError)}`,
              );
            }
            throw new Error(
              t("instances.form.modelRouting.restartRolledBack", {
                defaultValue:
                  "新路由启动失败,已恢复原配置并重新启动 Codex:{{error}}",
                error: String(restartError).replace(/^Error:\s*/, ""),
              }),
            );
          }
        }
        setMessage({ text: t("instances.messages.updated", "实例已更新") });
      } else {
        setActionLoading("create");

View on GitHub (pinned to 1ed8b77992)

Solutions

  1. Read both chained errors: the root cause is the first (new-routing restart), the second confirms rollback also failed
  2. Manually restore a known-good configuration and start the instance
  3. Check Codex binary/runtime health — failure under both configs usually points at the environment, not the routing change
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/components/InstancesManager.tsx:1601 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jlcodes99/cockpit-tools@1ed8b77992 (2026-09-05). Data as JSON: /api/errors/661d648d17b299dc. Report an issue: GitHub.