> ## Documentation Index
> Fetch the complete documentation index at: https://www.logo.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshoot logos: white box, monogram, blurry

> Fix common Logo.dev display issues: a white box behind a logo, a monogram instead of the real logo, blurry images, the wrong logo, or a logo that won't render.

Most logo problems are visual, not HTTP errors: the image loads with a `200` but doesn't look right. Find your symptom below. For status codes like `401`, `403`, and `429`, see [errors and status codes](/platform/errors).

| Symptom                                                                        | Cause                                  |
| ------------------------------------------------------------------------------ | -------------------------------------- |
| [White or colored box behind the logo](#white-or-colored-box-behind-the-logo)  | Default `format=jpg` is opaque         |
| [A monogram instead of the real logo](#a-monogram-instead-of-the-real-logo)    | No logo available for that domain      |
| [Blurry or low-resolution logo](#blurry-or-low-resolution-logo)                | Upscaled past the source, or no retina |
| [Wrong logo for the company](#wrong-logo-for-the-company)                      | The record needs updating              |
| [Logo doesn't render at all](#logo-doesnt-render-at-all)                       | Content Security Policy or a bad key   |
| [`next/image` errors about the hostname](#nextimage-errors-about-the-hostname) | `img.logo.dev` not in `remotePatterns` |

## White or colored box behind the logo

The default format is `jpg`, which has no transparency. On any colored or dark surface, the logo sits on a white rectangle. Request `format=png` for a transparent background, and `theme` to match the logo to your UI:

```html theme={null}
<img src="https://img.logo.dev/stripe.com?token=LOGO_DEV_PUBLISHABLE_KEY&format=png&theme=dark" alt="Stripe logo" />
```

`theme=dark` lightens logos with dark colors so they read on dark backgrounds. `theme=light` does the reverse. See [format and theme](/logo-images/get#parameters).

## A monogram instead of the real logo

When Logo.dev has no logo for a domain, it returns a generated monogram (a black-and-white mark with the domain's first letter) so your UI never shows a broken image. A monogram means Logo.dev has no logo for that domain, not that the request failed. If the domain should have one, [request an update](https://www.logo.dev/update).

To detect a missing logo in code instead of showing the monogram, set `fallback=404` and handle the error. See [fallback images](/logo-images/introduction#fallback-images) for the full pattern, including the `onerror` handler.

## Blurry or low-resolution logo

Logos render up to 800 pixels. A larger `size` upscales the source, and the result looks soft. Request the size you display, and add `retina=true` to serve a 2x image for high-density screens:

```html theme={null}
<img src="https://img.logo.dev/stripe.com?token=LOGO_DEV_PUBLISHABLE_KEY&size=128&retina=true" alt="Stripe logo" />
```

## Wrong logo for the company

If a domain returns an outdated or mismatched logo, [request an update](https://www.logo.dev/update). The team refreshes the database daily, and corrections usually land within 24 hours.

## Logo doesn't render at all

Check the browser console. A line like `Refused to load the image ... because it violates the following Content Security Policy directive` means your `Content-Security-Policy` is blocking it. Add `img.logo.dev` to your `img-src` directive. See [CORS and Content Security Policy](/platform/cors).

If the request returns `401`, the publishable key is missing or wrong, or [domain restrictions](/platform/api-keys#domain-restrictions) are blocking it: a key with **Allowed Domains Only** enabled rejects requests from unlisted domains, localhost, or any context that sends no `Referer`. Check the key's allowed domains before rotating it. See [API keys](/platform/api-keys).

## next/image errors about the hostname

`next/image` rejects external images until you allow their hostname. Add `img.logo.dev` to `images.remotePatterns`. See [Use Logo.dev with Next.js](/integrations/nextjs).
