ClickHouse / ClickHouse/nerve

agent: container memory.max ~1.93GB causes exit 143 on Node tooling

Open
#87 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
80
Forks
30
Avg merge
1d 14h
Merged PRs (30d)
19

Description

## Summary

Today (2026-05-28, ~21:30-21:55 UTC) several Opus 4.7 impl sessions stalled mid-task with `Agent error: Command failed with exit code 143` (SIGTERM). Sessions confirmed affected: `impl-af6f01dd`, `impl-2d3f4375`; likely also `impl-247fdb3b` + `impl-5f51ff89`.

## Root cause

Container cgroup `memory.max` was `2,066,325,504` bytes (~1.93 GB), below the 2-4 GB ceiling Node tooling (`jest`, `tsc`, `next build`) routinely uses. The OOM killer SIGTERMed the Node child; the Claude Agent SDK surfaced this as exit 143.

Reproducible at the time via `cat /sys/fs/cgroup/memory.max` returning `2066325504`.

## Current state

`cat /sys/fs/cgroup/memory.max` now returns `max` (unlimited) and the host shows 19 GB total / 12 GB available. The root cause is no longer reproducible, which is great, but the bump was either:

- (a) a deliberate `docker compose` change since this morning that wasn't documented anywhere I can find, or
- (b) a host-level OrbStack/Docker Desktop setting flip.

I cannot find which.

## Proposed follow-up

- Document the resolved bump in `nerve/bootstrap.py::_build_docker_compose`. If we don't pin a sane minimum memory limit explicitly, the next time someone runs `nerve init` on a fresh host they'll get whatever the daemon's default is.
- Optional: export `NODE_OPTIONS=--max-old-space-size=1500` in the validate-after-change skill for HyperDX repos as a belt-and-suspenders mitigation (the limit only triggers when actually running Node tooling, doesn't hurt otherwise).

## Audit-log evidence

- `~/.nerve/mechanical-actions/audit.jsonl` line 14: 21:55:29Z watcher quiet-tick note about the state-file reset (which itself was a side effect of the broader incident).
- Sessions API `messages` for `impl-af6f01dd`: last assistant turn at 2026-05-28T21:37:45Z is literally "Agent error: Command failed with exit code 143"; same for `impl-2d3f4375` at 21:39:12Z.

Filing this so the next cgroup change has context and so the diagnosis is searchable in memU later.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.