Skip to content
Latchkey

CircleCI "Received 'killed' signal" out-of-memory in CI

A process in the job was terminated by the OOM killer. CircleCL prints "Received 'killed' signal" when the container exceeds the RAM of its resource_class, so the fix is more memory or less peak usage.

What this error means

A step dies abruptly with "Received 'killed' signal" or the job summary notes it "ran out of memory", often during a build, test, or large install.

CircleCI
Received 'killed' signal
Error: The operation was canceled.

Common causes

The resource_class is too small

The default medium class gives limited RAM; a memory-hungry build or test suite exceeds it and is killed.

A single step with a large peak allocation

A bundler, compiler, or test runner allocates more than the container has at one moment, tripping the OOM killer.

How to fix it

Raise the resource_class

  1. Set a larger resource_class on the job.
  2. Re-run and watch peak memory in the job metrics.
  3. Step up only as far as needed to stay under the new limit.
.circleci/config.yml
jobs:
  build:
    resource_class: large
    docker: [{image: cimg/node:20.11}]

Cap the tool memory

Lower peak usage by bounding Node heap or test parallelism so the job fits its class.

.circleci/config.yml
- run:
    command: node --max-old-space-size=3072 ./build.js

How to prevent it

  • Right-size resource_class to real peak memory.
  • Bound heap and worker counts for memory-heavy tools.
  • Split very large builds across jobs.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →