Homebrew 6 'sh.brew.<formula>' service label is not recognized; managed gateway classified as port owner mismatch · Issue #11111 · NVIDIA/NemoClaw · GitHub
Skip to content

Homebrew 6 'sh.brew.<formula>' service label is not recognized; managed gateway classified as port owner mismatch #11111

Description

@ericksoa

Investigation Summary

  • Homebrew 6 registers services with the label sh.brew.<formula> (brew services info openshell --json reports "service_name": "sh.brew.openshell").
  • src/lib/onboard/docker-driver-gateway-service.ts only accepts candidate.service_name === homebrew.mxcl.${service.serviceName}``, so the managed gateway NemoClaw just started is not recognized as the packaged service.
  • Readiness then classifies the listener on port 8080 as gateway.port.owner_mismatch and onboarding blocks.
  • Patching the comparison to also accept sh.brew.<formula> lets onboarding proceed.

Description

On a Mac with Homebrew 6, nemohermes onboard starts the OpenShell gateway through the managed Homebrew service, reports it healthy at step 2/8, and then on the next preflight refuses to continue:

✗ The gateway port is held by an incompatible or ambiguous owner.
✗ System readiness could not confirm required capabilities: gateway.version.compatible.
Gateway port 8080 is occupied by openshell-gateway (PID 73765). Confirm PID 73765 is not another NemoClaw gateway, then stop only it before retrying: sudo kill 73765

nemohermes host probe --json shows gateway.owner.source = packaged-service, gateway.reuse = healthy, and gateway.port_conflict = owner-mismatch. The PID is NemoClaw's own service (launchctl list shows label sh.brew.openshell, executable /opt/homebrew/opt/openshell/bin/openshell-gateway).

Expected: the managed Homebrew service is recognized under both the legacy homebrew.mxcl.* and the Homebrew 6 sh.brew.* labels.

Reproduction Steps

  1. macOS with Homebrew 6.x (brew --version → 6.0.21 here).
  2. curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_AGENT=hermes bash -s -- --non-interactive --yes-i-accept-third-party-software
  3. Onboarding starts the gateway, then fails preflight on resume with the owner-mismatch finding above.
  4. brew services info openshell --jsonservice_name is sh.brew.openshell.

Environment

  • macOS 15 (Darwin 25.6.0), Apple Silicon (M2 Pro), Homebrew 6.0.21
  • Docker via Colima (docker 29.2.1, linux/arm64 VM)
  • NemoClaw v0.0.109 via the hosted installer (lkg), OpenShell 0.0.101 (Homebrew formula), Hermes Agent v0.19.0
  • Same code path present on main at the time of filing

Debug Output

$ brew services info nvidia/openshell/openshell --json
[{"name":"openshell","service_name":"sh.brew.openshell","running":true,"loaded":true,"pid":73765,"file":"/Users/<user>/Library/LaunchAgents/sh.brew.openshell.plist", ...}]

Workaround

Local patch accepting either label in docker-driver-gateway-service.js (the record lookup that matches candidate.service_name).

Checklist

  • I confirmed this bug is reproducible
  • I searched existing issues and this is not a duplicate

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: installInstall, setup, prerequisites, or uninstall flowneeds: triageAwaiting maintainer classificationplatform: macosAffects macOS, including Apple Silicon

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions