CircleCI "Docker Layer Caching is not available" - Fix DLC
You enabled Docker Layer Caching (DLC) but CircleCI says it is not available, so every docker build rebuilds all layers. DLC needs a supporting plan and the right executor setup.
What this error means
A warning that "Docker Layer Caching is not available", and builds never reuse layers - each run rebuilds from scratch and is slow. The docker_layer_caching: true flag is effectively ignored.
Docker Layer Caching is not available on your current plan,
or not supported for this executor. Building without layer cache.Common causes
Plan does not include DLC
Docker Layer Caching is a paid feature. On a plan without it, the flag is accepted but no layer cache is provided.
DLC set where it is not supported
DLC applies to setup_remote_docker and the machine executor. Setting docker_layer_caching in the wrong place has no effect.
Expecting DLC to persist forever
DLC caches are best-effort and can be evicted. A cold cache after eviction looks like "no caching", which is expected behavior, not a bug.
How to fix it
Enable DLC on a supported executor
jobs:
build-image:
docker:
- image: cimg/base:current
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run: docker build -t app .Fall back to BuildKit inline cache
When DLC is unavailable, use a registry-backed build cache so layers persist without DLC.
- run: |
export DOCKER_BUILDKIT=1
docker build \
--cache-from myorg/app:cache \
--build-arg BUILDKIT_INLINE_CACHE=1 \
-t myorg/app:latest .How to prevent it
- Confirm your plan includes DLC before relying on it.
- Set
docker_layer_cachingonly undersetup_remote_docker/machine. - Use a registry cache (
--cache-from) as a portable fallback.