From b48cf62e5b1c3eef35c01da381f2c0528e0cf2fa Mon Sep 17 00:00:00 2001 From: SaelixCode Date: Thu, 19 Mar 2026 12:41:34 -0400 Subject: [PATCH] fix: skip remote nodes in MonitorService to prevent direct Docker access errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remote nodes in the Distributed API model are self-monitoring — each remote Sencho instance runs its own MonitorService against its local Docker socket. The main instance must not attempt direct DockerController access for remote nodes, which caused fatal crashes on every 30s tick. Co-Authored-By: Claude Sonnet 4.6 --- backend/src/services/MonitorService.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/src/services/MonitorService.ts b/backend/src/services/MonitorService.ts index 12a40a57..eefec7bd 100644 --- a/backend/src/services/MonitorService.ts +++ b/backend/src/services/MonitorService.ts @@ -121,6 +121,8 @@ export class MonitorService { const nodes = DatabaseService.getInstance().getNodes(); for (const node of nodes) { if (!node.id) continue; + // Remote nodes run their own MonitorService locally — skip direct Docker access + if (node.type === 'remote') continue; try { const docker = DockerController.getInstance(node.id); const containers = await docker.getAllContainers(); @@ -206,6 +208,8 @@ export class MonitorService { for (const node of nodes) { if (!node.id) continue; + // Remote nodes are self-monitoring — skip direct Docker access + if (node.type === 'remote') continue; try { const docker = DockerController.getInstance(node.id); const containers = await docker.getRunningContainers();