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
- Read both chained errors: the root cause is the first (new-routing restart), the second confirms rollback also failed
- Manually restore a known-good configuration and start the instance
- 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.