affaan-m/ECC · error · Error
Command " " terminated by signal
Error message
Command "${commandName}" terminated by signal ${result.signal} What it means
After spawnSync runs a subcommand, if the child did not exit normally but was killed by a signal, runCommand() throws 'Command "<name>" terminated by signal <signal>'. This surfaces signals like SIGINT or SIGSEGV instead of silently returning an exit code.
Solutions
- Inspect which signal was reported (e.g. SIGKILL suggests OOM, SIGSEGV suggests a crash) and address the root cause.
- Re-run the command; a one-off Ctrl+C just needs a retry.
- For SIGKILL during installs, free memory or increase the container/memory limits.
- Check CI timeout/signal settings if the command is being killed by the pipeline.
Example fix
// before // child killed silently by SIGKILL in constrained container // after // raise memory limit then retry NODE_OPTIONS=--max-old-space-size=2048 ecc install
Defensive patterns
Strategy: retry
Try / catch
try {
process.exitCode = runCommand(name, args);
} catch (err) {
const m = err.message.match(/terminated by signal (\w+)/);
if (m) {
console.error(`'${name}' was killed by ${m[1]}; check memory/timeout settings.`);
process.exit(1);
}
throw err;
} Prevention
- Run long installs in environments with adequate memory to avoid OOM SIGKILL.
- Avoid Ctrl+C mid-install; rerun if interrupted.
- Configure generous CI timeouts so the runner doesn't SIGTERM the process.
- Check dmesg/journal for OOM-killer events after SIGKILL failures.
When it happens
Trigger: The spawned script (process.execPath + command.script) is killed by a signal — user pressed Ctrl+C, the process OOM-killed (SIGKILL), segfaulted (SIGSEGV), or was terminated by a supervisor.
Common situations: Interrupting a long-running install with Ctrl+C, OOM killer terminating Node during heavy installs, signal-based CI timeouts, or a crashing native module in the child.
Related errors
AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16).
Data as JSON: /api/errors/eb3544de1112355a.
Report an issue: GitHub.
Appendix: source
Thrown at scripts/ecc.js:309
if (result.error) {
throw result.error;
}
if (result.stdout) {
process.stdout.write(result.stdout);
}
if (result.stderr) {
process.stderr.write(result.stderr);
}
if (typeof result.status === 'number') {
return result.status;
}
if (result.signal) {
throw new Error(`Command "${commandName}" terminated by signal ${result.signal}`);
}
return 1;
}
function main() {
try {
const resolution = resolveCommand(process.argv);
if (resolution.mode === 'help') {
showHelp(0);
}
if (resolution.mode === 'help-command') {
if (!resolution.command) {
showHelp(0);
}
View on GitHub (pinned to 8321021c54)