From c67d5277c3bd9ea72920d521f609ebe71d4327f3 Mon Sep 17 00:00:00 2001 From: Echo Date: Sun, 15 Feb 2026 09:24:38 -0500 Subject: [PATCH] fix(mattermost): derive slash callback port from runtime env --- extensions/mattermost/src/mattermost/monitor.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/extensions/mattermost/src/mattermost/monitor.ts b/extensions/mattermost/src/mattermost/monitor.ts index d0524d3a2db..805fed383ab 100644 --- a/extensions/mattermost/src/mattermost/monitor.ts +++ b/extensions/mattermost/src/mattermost/monitor.ts @@ -229,7 +229,15 @@ export async function monitorMattermostProvider(opts: MonitorMattermostOpts = {} if (slashEnabled) { try { const teams = await fetchMattermostUserTeams(client, botUserId); - const gatewayPort = cfg.gateway?.port ?? 3015; + + // Use the *runtime* listener port when available (e.g. `openclaw gateway run --port `). + // The gateway sets OPENCLAW_GATEWAY_PORT when it boots, but the config file may still contain + // a different port. + const envPortRaw = process.env.OPENCLAW_GATEWAY_PORT?.trim(); + const envPort = envPortRaw ? Number.parseInt(envPortRaw, 10) : NaN; + const gatewayPort = + Number.isFinite(envPort) && envPort > 0 ? envPort : (cfg.gateway?.port ?? 3015); + const callbackUrl = resolveCallbackUrl({ config: slashConfig, gatewayPort,