Skip to content

[All Platform]nemoclaw stop only stops cloudflared but does not stop Telegram/Discord/Slack messaging bridges running inside the sandbox #1825

@zNeill

Description

@zNeill

Description

[Environment]

  • Device: macOS 26.0.1 (arm64)
  • NemoClaw: v0.0.14 | OpenShell: 0.0.26

[Description] After running nemoclaw stop, the Telegram and Discord bots continue to respond to messages. The stop command only manages host-side cloudflared (the only entry in SERVICE_NAMES). Messaging bridges run inside the sandbox as part of the OpenClaw process and are completely unaffected by nemoclaw stop. There is no mechanism to pause, stop, or signal the in-sandbox channels.

[Environment]

  • NemoClaw: v0.0.14 | OpenShell: 0.0.26 | macOS 26.0.1 (arm64)

[Steps to Reproduce]

nemoclaw stop
# In Telegram: send message to bot → bot replies
# In Discord: send message to bot → bot replies
nemoclaw test11 status   # shows "OpenClaw: running"
nemoclaw test11 logs | grep telegram   # still polling api.telegram.org

[Expected Result] After nemoclaw stop, messaging bridges should stop and bots should not respond.

[Actual Result] nemoclaw stop output says "All services stopped" but:

  • Telegram bridge continues polling api.telegram.org (confirmed in logs)
  • Discord bridge continues polling discord.com/api (confirmed in logs)
  • nemoclaw test11 status still shows OpenClaw: running
  • Bots respond to messages in both Telegram and Discord

[Root Cause]

  • File: src/lib/services.ts:103
    const SERVICE_NAMES = ["cloudflared"] as const;
    

    Only cloudflared is registered as a managed service.


  • File: src/lib/services.ts:240-245

    export function stopAll(opts: ServiceOptions = {}): void {
      const pidDir = resolvePidDir(opts);
      ensurePidDir(pidDir);
      stopService(pidDir, "cloudflared");
      info("All services stopped.");   // misleading — bridges still running
    }
    
  • File: src/lib/services.ts:252-255 (comment in startAll):

    // Messaging (Telegram, Discord, Slack) is now handled natively by OpenClaw
    // inside the sandbox via the OpenShell provider/placeholder/L7-proxy pipeline.
    // No host-side bridge processes are needed. See: PR #1081.
    

    After PR fix(security): use providers for messaging credential injection #1081 moved bridges into the sandbox, no stop mechanism was added to replace the old host-side process kill. The "All services stopped" message is misleading.

[Suggested Fix] Option A: nemoclaw stop should exec into the sandbox and stop the OpenClaw channels:

openshell sandbox exec test11 -- openclaw channels stop

Option B: Add a nemoclaw channels stop command that signals OpenClaw inside the sandbox. Option C: At minimum, change the "All services stopped" message to indicate messaging bridges are not controlled by stop.

Bug Details

Field Value
Priority Unprioritized
Action Dev - Open - To fix
Disposition Open issue
Module Machine Learning - NemoClaw
Keyword NemoClaw, NEMOCLAW_GH_SYNC_APPROVAL

[NVB# 6072213]

[NVB#6072213]

Metadata

Metadata

Labels

NV QABugs found by the NVIDIA QA TeamUATIssues flagged for User Acceptance Testing.VDRLinked to VDR findingarea: integrationsThird-party service integration behaviorintegration: discordDiscord integration or channel behaviorintegration: slackSlack integration or channel behaviorintegration: telegramTelegram integration or channel behavior
No fields configured for Enhancement.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions