nanocoai/nanoclaw · warning
Failed to list install-owned networks
Error message
Failed to list install-owned networks
What it means
The host could not list Docker networks owned by this install, so network residue reaping is skipped entirely this run. Orphaned networks accumulate until a later successful sweep.
Source
Thrown at src/drivers/docker-driver.ts:397
}
if (preSeam.length > 0) log.info('Stopped pre-seam containers', { count: preSeam.length, names: preSeam });
} catch (err) {
log.warn('Failed to clean up pre-seam containers', { err });
}
let names: string[] = [];
try {
const out = this.#cli.run([
'network',
'ls',
'--filter',
`label=${LABELS.install}=${installSlug}`,
'--format',
'{{.Name}}',
]);
names = out.trim().split('\n').filter(Boolean);
} catch (err) {
log.warn('Failed to list install-owned networks', { err });
return;
}
const removed: string[] = [];
for (const name of names) {
try {
this.#cli.run(['network', 'rm', validateRuntimeName(name, 'network')]);
removed.push(name);
} catch {
/* still in use by a live session, or already gone */
}
}
if (removed.length > 0) log.info('Removed orphaned networks', { count: removed.length, names: removed });
}
/**
* Name-existence alone cannot answer "is this MY session": the name is
* key-derived, but a foreign container can wear it — another install sharing
* this daemon whose truncated identity collides, or an operator's hand-madeView on GitHub (pinned to 294ef2aee8)
Solutions
- Verify `docker network ls` works for the host user
- Restart nanoclaw to retry the sweep
- Prune stale networks manually if accumulation matters: `docker network prune` (careful — global)
Defensive patterns
Strategy: retry
Validate before calling
execSync('docker network ls').toString(); // gate before sweep Try / catch
try { listNetworks(); } catch { return; /* retried next sweep */ } Prevention
- Keep Docker healthy; restart nanoclaw after daemon restarts
- Periodically audit install-labeled networks if warnings recur
When it happens
Trigger: `docker network ls --filter label=...` fails — daemon unavailable mid-sweep, CLI parse issue, or docker socket permission problems.
Common situations: Docker restarting during a host sweep; permissions changed on the docker socket.
Related errors
- Failed to clean up pre-seam containers
- --stdin-json input exceeds ${MAX_STDIN_JSON_BYTES} bytes
- --stdin-json input is not valid JSON
- --stdin-json input must be one JSON object
- wakeContainer failed — host-sweep will retry
AI-assisted analysis of nanocoai/nanoclaw@294ef2aee8 (2026-08-28).
Data as JSON: /api/errors/f8d1c7e3e632a9c8.
Report an issue: GitHub.