Skip to content

Production builds timing out after Netlify Focal → Noble migration (image cache not restored) #4574

@Yndira-E

Description

@Yndira-E

Production builds timing out after Netlify Focal → Noble migration (image cache not restored)

Current Behavior

Production builds are timing out after ~30 minutes during the Eleventy image processing step.

Build logs consistently show:

  • Failed to fetch cache, continuing with build
  • A cache of '_site/img, .cache/images' doesn't exist (yet).
  • [11ty] Image pipeline is enabled in prod mode, expect a wait for first build while images are converted and resized

Because no cache is restored, Eleventy regenerates all responsive image variants from scratch.
The build exceeds Netlify’s 30-minute limit and is cancelled before completion.

Since the build never completes successfully, the image cache is never populated — resulting in a cold-start loop on every deploy.


Expected Behavior

Production builds should:

  • Restore the previous image cache from Netlify
  • Only process new/changed images
  • Complete within the 30-minute limit

A single successful cold build should be enough to seed cache for subsequent builds.


Steps to Reproduce

  1. Deploy production branch (live) on Netlify.
  2. Observe build logs:
    • Cache restore fails.
    • Eleventy image pipeline runs in full production mode.
  3. Build exceeds 30 minutes.
  4. Deploy is cancelled before cache can be saved.
  5. Re-deploy — same behavior repeats.

Environment

  • Netlify Pro plan
  • Production branch: live
  • Framework: Eleventy 2.0.1
  • Image processing: @11ty/eleventy-img
  • Netlify build image: noble-new-builds
  • Cache paths configured:
    • _site/img
    • .cache/images
  • Explicit cacheOptions.directory = ".cache/images" configured in Eleventy image handler

Actions Taken So Far

#4571
#4572

  • Verified image cache paths are aligned between Eleventy and Netlify plugin:
    • _site/img
    • .cache/images
  • Added a temporary reduced image build profile (IMAGE_BUILD_PROFILE=warm) to:
    • Disable avif
    • Disable retina 2x variants
    • Keep image generation enabled (no SKIP_IMAGES)
  • Confirmed locally that:
    • warm profile significantly reduces generated variants
    • No avif files are generated
  • Confirmed in Netlify production logs that warm profile is active
  • Re-triggered production deploy multiple times — issue persists
  • Contacted Netlify Support requesting:
    • Temporary build timeout increase (90 minutes)
    • Investigation into why cache restore fails after Noble migration

Metadata

Metadata

Assignees

Labels

needs-triageNeeds looking at to decide what to do

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions