if (service.configAudit?.issues.length) {
defaultRuntime.error(warnText("Service config looks out of date or non-standard.")); for (const issue of service.configAudit.issues) { const detail = issue.detail ? ` (${issue.detail})` : "";
defaultRuntime.error(`${warnText("Service config issue:")} ${issue.message}${detail}`);
}
defaultRuntime.error(
warnText(
`Recommendation: run "${formatCliCommand("openclaw doctor")}" (or "${formatCliCommand("openclaw doctor --repair")}").`,
),
);
}
if (status.config) { const cliCfg = `${shortenHomePath(status.config.cli.path)}${status.config.cli.exists ? "" : " (missing)"}${status.config.cli.valid ? "" : " (invalid)"}`;
defaultRuntime.log(`${label("Config (cli):")} ${infoText(cliCfg)}`); if (!status.config.cli.valid && status.config.cli.issues?.length) { for (const issue of status.config.cli.issues.slice(0, 5)) {
defaultRuntime.error(
`${errorText("Config issue:")} ${formatConfigIssueLine(issue, "", { normalizeRoot: true })}`,
);
}
} if (status.config.daemon) { const daemonCfg = `${shortenHomePath(status.config.daemon.path)}${status.config.daemon.exists ? "" : " (missing)"}${status.config.daemon.valid ? "" : " (invalid)"}`;
defaultRuntime.log(`${label("Config (service):")} ${infoText(daemonCfg)}`); if (!status.config.daemon.valid && status.config.daemon.issues?.length) { for (const issue of status.config.daemon.issues.slice(0, 5)) {
defaultRuntime.error(
`${errorText("Service config issue:")} ${formatConfigIssueLine(issue, "", { normalizeRoot: true })}`,
);
}
}
} if (status.config.mismatch) {
defaultRuntime.error(
errorText( "Root cause: CLI and service are using different config paths (likely a profile/state-dir mismatch).",
),
);
defaultRuntime.error(
errorText(
`Fix: rerun \`${formatCliCommand("openclaw gateway install --force")}\` from the same --profile / OPENCLAW_STATE_DIR you expect.`,
),
);
}
spacer();
}
if (rpc && !rpc.ok && service.loaded && service.runtime?.status === "running") {
defaultRuntime.log(
warnText("Warm-up: launch agents can take a few seconds. Try again shortly."),
);
} if (rpc) { const probeLabel = formatProbeKindLabel(rpc.kind); if (rpc.ok) {
defaultRuntime.log(`${label(probeLabel)} ${okText("ok")}`);
} else {
defaultRuntime.error(`${label(probeLabel)} ${errorText("failed")}`); if (rpc.authWarning) {
defaultRuntime.error(`${label("Probe auth:")} ${warnText(rpc.authWarning)}`);
} if (rpc.url) {
defaultRuntime.error(`${label("Probe target:")} ${rpc.url}`);
} const lines = (rpc.error ?? "unknown").split(/\r?\n/).filter(Boolean); for (const line of lines.slice(0, 12)) {
defaultRuntime.error(` ${errorText(line)}`);
}
} const capability = formatCapabilityLabel(rpc.capability); if (capability) {
defaultRuntime.log(`${label("Capability:")} ${infoText(capability)}`);
}
spacer();
}
if (
status.health &&
status.health.staleGatewayPids.length > 0 &&
service.runtime?.status === "running" && typeof service.runtime.pid === "number"
) {
defaultRuntime.error(
errorText(
`Gateway runtime PID does not own the listening port. Other gateway process(es) are listening: ${status.health.staleGatewayPids.join(", ")}`,
),
);
defaultRuntime.error(
errorText(
`Fix: run ${formatCliCommand("openclaw gateway restart")} and re-check with ${formatCliCommand("openclaw gateway status --deep")}.`,
),
);
spacer();
}
const systemdUnavailable =
process.platform === "linux" && isSystemdUnavailableDetail(service.runtime?.detail); if (systemdUnavailable) { const container = Boolean(
resolveDaemonContainerContext(service.command?.environment ?? process.env),
);
defaultRuntime.error(errorText("systemd user services unavailable.")); for (const hint of renderSystemdUnavailableHints({
wsl: isWSLEnv(),
kind: classifySystemdUnavailableDetail(service.runtime?.detail),
container,
})) {
defaultRuntime.error(errorText(hint));
}
spacer();
}
if (service.runtime?.missingUnit) {
defaultRuntime.error(errorText("Service unit not found.")); for (const hint of renderRuntimeHints(service.runtime, process.env, status.logFile)) {
defaultRuntime.error(errorText(hint));
}
} elseif (service.loaded && service.runtime?.status === "stopped") {
defaultRuntime.error(
errorText("Service is loaded but not running (likely exited immediately)."),
); for (const hint of renderRuntimeHints(
service.runtime,
service.command?.environment ?? process.env,
status.logFile,
)) {
defaultRuntime.error(errorText(hint));
}
spacer();
}
if (extraServices.length > 0) {
defaultRuntime.error(errorText("Other gateway-like services detected (best effort):")); for (const svc of extraServices) {
defaultRuntime.error(`- ${errorText(svc.label)} (${svc.scope}, ${svc.detail})`);
} for (const hint of renderGatewayServiceCleanupHints()) {
defaultRuntime.error(`${errorText("Cleanup hint:")} ${hint}`);
}
spacer();
}
if (extraServices.length > 0) {
defaultRuntime.error(
errorText( "Recommendation: run a single gateway per machine for most setups. One gateway supports multiple agents (see docs: /gateway#multiple-gateways-same-host).",
),
);
defaultRuntime.error(
errorText( "If you need multiple gateways (e.g., a rescue bot on the same host), isolate ports + config/state (see docs: /gateway#multiple-gateways-same-host).",
),
);
spacer();
}
defaultRuntime.log(`${label("Troubles:")} run ${formatCliCommand("openclaw status")}`);
defaultRuntime.log(`${label("Troubleshooting:")} https://docs.openclaw.ai/troubleshooting`);
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet am 2026-06-05)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.