jlcodes99/cockpit-tools · error

instances.form.modelRouting.restartRolledBack

instances.form.modelRouting.restartRolledBack

Error message

新路由启动失败,已恢复原配置并重新启动 Codex:{{error}}

What it means

Rollback-path error in InstancesManager: after the new model-routing restart failed, the original configuration was saved and the instance restarted, but that restart still failed. The error message ('新路由启动失败,已恢复原配置并重新启动 Codex:{{error}}') reports that the original config was restored yet the instance still cannot start, with the rollback restart error interpolated.

Source

Thrown at src/components/InstancesManager.tsx:1608

                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");
        const created = await createInstance({
          name: formName.trim(),
          userDataDir: formPath.trim(),
          workingDir: nextWorkingDir,
          extraArgs: formExtraArgs,
          initMode: isGrokApp ? "empty" : formInitMode,
          launchMode: nextLaunchMode,

View on GitHub (pinned to 1ed8b77992)

Solutions

  1. Use the interpolated error to diagnose why the previously working config no longer starts (port conflict, stale process, binary issue)
  2. Kill orphaned Codex processes holding resources, then start again
  3. Verify the restored configuration file was written correctly before retrying
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/components/InstancesManager.tsx:1608 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/04da7d8dcd5952fe. Report an issue: GitHub.