diff --git a/src/cli/daemon-cli/lifecycle-core.ts b/src/cli/daemon-cli/lifecycle-core.ts index 1885657b137..6b8c7ee684c 100644 --- a/src/cli/daemon-cli/lifecycle-core.ts +++ b/src/cli/daemon-cli/lifecycle-core.ts @@ -5,7 +5,10 @@ import { checkTokenDrift } from "../../daemon/service-audit.js"; import type { GatewayService } from "../../daemon/service.js"; import { renderSystemdUnavailableHints } from "../../daemon/systemd-hints.js"; import { isSystemdUserServiceAvailable } from "../../daemon/systemd.js"; -import { isGatewaySecretRefUnavailableError } from "../../gateway/credentials.js"; +import { + isGatewaySecretRefUnavailableError, + resolveGatewayCredentialsFromConfig, +} from "../../gateway/credentials.js"; import { isWSL } from "../../infra/wsl.js"; import { defaultRuntime } from "../../runtime.js"; import { @@ -281,7 +284,11 @@ export async function runServiceRestart(params: { const command = await params.service.readCommand(process.env); const serviceToken = command?.environment?.OPENCLAW_GATEWAY_TOKEN; const cfg = loadConfig(); - const configToken = cfg.gateway?.auth?.token?.trim() || undefined; + const configToken = resolveGatewayCredentialsFromConfig({ + cfg, + env: process.env, + modeOverride: "local", + }).token; const driftIssue = checkTokenDrift({ serviceToken, configToken }); if (driftIssue) { const warning = driftIssue.detail