Skip to content
Latchkey

CircleCI Test Splitting "no timing data found"

Splitting tests by timing needs historical timing data, which comes from store_test_results on prior runs. Without it (first run, missing results, or changed paths), CircleCI falls back to a less balanced name-based split.

What this error means

The split step warns that no timing data was found and falls back to splitting by name or filesize, producing uneven parallel shards.

circleci
WARNING: no timing data found for this job. Falling back to splitting
by name. Add store_test_results to record timings for future runs.

Common causes

First run on the branch

There is no prior timing data to balance against yet.

store_test_results not configured

Without storing results, timings are never recorded for future splits.

Test path or filter changed

Changing which tests are matched can invalidate prior timing buckets.

How to fix it

Record timings with store_test_results

Emit JUnit results and store them so future runs split by timing.

.circleci/config.yml
steps:
  - run:
      command: |
        TESTFILES=$(circleci tests glob "test/**/*.spec.js" | circleci tests split --split-by=timings)
        npx jest $TESTFILES --reporters=jest-junit
  - store_test_results:
      path: ./reports

How to prevent it

  • Always add store_test_results when splitting by timings.
  • Keep the test glob stable so timing buckets persist.
  • Expect the first run to fall back to name-based splitting.

Related guides

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