Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If a Next.js image is missing, start with the image request in your browser’s Network panel—not with a guess based on the blank space. A 404 usually sends you toward the file path; a 400 from the Next.js image route can indicate a pattern mismatch. If the request succeeds, check the rendered image’s dimensions, its parent layout, and whether the deployment can run the optimizer. These checks separate the common causes without changing unrelated settings.

Start with the failing image request

Open your browser’s developer tools, select the Network panel, and reload the page. Filter for images or search for the image filename, then inspect the request URL and status. Also inspect the rendered element in the Elements panel: a blank area alone does not tell you whether the request failed, the element has no visible size, or the image is simply outside the expected layout.

  • 404: First verify that the file exists at the expected location and that the URL maps to it correctly.
  • 400 from an image route: Check whether the requested local or remote URL is permitted by the configured image patterns.
  • A successful image response, but no visible image: Check the element’s dimensions, its parent, and CSS that could affect visibility or cropping.
  • Different results locally and after deployment: Check how the deployed app handles image optimization and whether the source requires authentication.

A 400 or a blank visual area does not identify one cause by itself. Follow the request and the element to the relevant branch below.

Fix local image paths and local pattern mismatches

Map the public folder to the URL correctly

Files placed in the project’s root public folder are served from the site root. For example, a file at public/avatars/me.png is requested at /avatars/me.png, not /public/avatars/me.png. The Image component’s source should use that URL:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Philips 24 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 241V8LB
  • CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  • WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
  • A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents
import Image from 'next/image';

export default function Avatar() {
  return <Image src="/avatars/me.png" alt="Profile" width={96} height={96} />;
}

Confirm both sides of the mapping: the file is in the root public directory, and the browser request uses the root-relative URL with public omitted. If the request URL is wrong, fix the source path before changing image optimization settings. See the Next.js public folder convention.

Check localPatterns if they are configured

If your project sets images.localPatterns, a local file can exist and still be rejected when its requested path does not match the configured pathname pattern. Query strings can matter, too: the match can include the URL’s search string. A configured empty search value requires a URL with no query string, while omitting search allows search parameters. A cache-busting query added to a URL can therefore make a previously matching path stop matching.

Compare the actual request—including its query string—with localPatterns, then adjust the pattern only as broadly as the application requires. The Next.js localPatterns error documentation describes the matching behavior.

Rank #2
Philips 22 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 221V8LB
  • CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
  • SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors

Fix remote image host and URL pattern mismatches

Remote URLs used by next/image need to be allowed by images.remotePatterns. Matching can depend on the protocol, hostname, port, pathname, and configured search string. Check the exact URL from the failed request; do not assume that allowing one hostname also allows its www version, another subdomain, or every path on a CDN.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Compare the complete URL with the configuration

  • Protocol: Confirm whether the request uses http or https.
  • Hostname: Compare the full host, including any CDN or asset subdomain.
  • Port: Check for a non-default port in the URL.
  • Pathname: Confirm that the pattern covers the path prefix and requested image path.
  • Search: Check the query string if the pattern specifies one, or restricts it to no query string.

Use the narrowest pattern that covers the intended source. The current Image API warns that omitted pattern fields imply broad wildcards, which can permit URLs beyond those the application intended to optimize. The older images.domains option has been deprecated since Next.js 14 in favor of strict remotePatterns. The exact syntax available depends on the installed Next.js version, so check the matching documentation before copying a configuration. The unconfigured-host guide notes that versions before 15.3.0 use the object form of remotePatterns, and versions before 12.3.0 may use images.domains.

For an object-form configuration, a narrowly scoped pattern might look like this; change the hostname and path to match your actual image source, and verify the syntax against your installed release:

Rank #3
Dell 24 Monitor - SE2426H - 23.8-inch FHD (1920x1080) 144Hz 1ms Display, in-Plane Switching (IPS) Technology, AMD FreeSync™, TÜV 3-Star 2X HDMI, Tilt
  • Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
  • Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
  • Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
  • In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
  • Ultra-thin bezels: Maximize your viewing experience with thin bezels.
module.exports = {
  images: {
    remotePatterns: [
      {
        protocol: 'https',
        hostname: 'assets.example.com',
        pathname: '/account123/**',
      },
    ],
  },
};

This example does not authorize every host or path. A mismatch between the configured pattern and the actual source can produce an unconfigured-host error. See the Next.js unconfigured-host guide and the Image Component API.

Check dimensions, fill, and the parent layout

For a remote or dynamically supplied source, the current Image API requires width and height, unless you use fill. A static import supplies intrinsic dimensions automatically. The width and height describe the image’s intrinsic dimensions and let Next.js reserve space; CSS controls the rendered size. Missing dimensions are a layout issue to investigate, but they do not explain every failed network request.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use width and height when the dimensions are known

<Image
  src="https://assets.example.com/account123/photo.jpg"
  alt="A person standing outdoors"
  width={1200}
  height={800}
/>

Use values that reflect the source image’s aspect ratio. If the design renders the image smaller, size it with the layout and CSS rather than treating the intrinsic dimensions as its final display size.

Rank #4
Sale
Samsung 27" Essential S3 (S36GD) Series FHD 1800R Curved Computer Monitor
  • CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
  • SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
  • MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
  • KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
  • INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient

Use fill only when the parent has a usable box

With fill, the image expands to its parent. That parent needs positioning—commonly position: relative—and a meaningful size. If the parent has no usable dimensions, the image may not occupy the space you expect. Set object-fit: cover when the image should fill the area with cropping, or contain when it should fit without cropping.

<div className="photo-frame">
  <Image
    src="https://assets.example.com/account123/photo.jpg"
    alt="A person standing outdoors"
    fill
    style={{ objectFit: 'cover' }}
  />
</div>
.photo-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
}

The Image Component API documents the dimension and fill requirements. If the request itself is a 404 or a pattern-related 400, resolve that request problem separately from layout.

Match image optimization to the deployment and source

Runtime deployment versus static export

The self-hosting guide documents default image optimization when an application is deployed using next start. A static export follows a different path: the guide documents a custom image loader, and optimization is not performed at build time for that export. If images work in a runtime deployment but not in a static export, check whether the delivery setup expects a loader or a separate image optimization service rather than assuming the source file is missing.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Sale
Sceptre New 22-Inch Gaming Monitor, FHD 1080p, Up to 144Hz, HDMI, DisplayPort, Built-in Speakers, Machine Black (E225W-FW144 Series, 2026)
  • 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
  • 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
  • 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.

Authenticated image sources

If an image source requires authentication, the optimizer may not be able to fetch it with the credentials it needs. The Image API recommends considering unoptimized to disable optimization for that image. This can avoid routing a protected source through the optimizer, but it also disables optimization for that image; use it only if that matches the application’s delivery and security setup.

Custom loaders and external optimization

A custom loader can generate image URLs for third-party cloud image providers. The self-hosting guide also describes using a separate image optimization service. These are design choices for applications whose deployment or image delivery needs them—not mandatory fixes for every missing image. See the Next.js self-hosting guide for the documented runtime and static-export paths.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Use this decision path before changing configuration

  1. Record the failing URL and status in the browser’s Network panel. Verify that you are inspecting the image request rather than inferring the cause from a blank area.
  2. If it is a local URL, check the file mapping. Confirm the file is under the root public folder and omit /public from its URL.
  3. If localPatterns are configured, compare the pathname and search. Check whether the request’s query string is allowed.
  4. If it is a remote URL, compare every relevant part with remotePatterns. Check protocol, hostname, port, path, and configured search string; confirm the syntax fits the installed Next.js version.
  5. If the response succeeds, inspect the layout. Check dimensions, fill, parent positioning and size, and the intended object fit.
  6. If the behavior changes after deployment, check the optimization path. Determine whether the deployment uses next start or a static export, and whether the source requires authentication.

Change the setting tied to the evidence you found. Broadly allowing remote hosts, disabling optimization everywhere, or changing layout props will not correct an unrelated 404.

Or skip the browser setup

If you want a visual capture of the page while you work through the failing image request, ScreenshotNeo can return a screenshot from one API request. A screenshot can show what the page rendered, but it does not replace inspecting the request status or fixing a Next.js path, pattern, layout, or deployment mismatch. See the ScreenshotNeo documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; failed loads, blank pages, bot checks, and cache hits are not billed. It also offers an MCP server for AI agents, and its free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for free ScreenshotNeo screenshots.

Official references

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.