# Troubleshooting

## Pixel's screens do not load, and nothing renders

Pixel renders with ImageMagick through the Imagick PHP extension. When the
extension is missing, Pixel registers neither its REST operations nor its
front-end output: its screens cannot load their data, no tags or featured
images are replaced, and the [PHP functions](/docs/pixel/rendering/function.md)
and [shortcode](/docs/pixel/rendering/shortcode.md) return nothing.
`wp sleek pixel render` says so directly: `The Imagick PHP extension is
required to render images.` Ask your host to enable Imagick.

## An image does not appear on the page

- **Check its conditions.** An image is used only where one of its condition
  groups matches, and each group needs its output row; see
  [Conditions](/docs/pixel/locations.md).
- **Asynchronous processing.** With
  [asynchronous processing](/docs/pixel/settings/options.md#image-processing), and
  always for visitors who are not signed in, the first request only queues the
  file; the page keeps its previous image or tags until the file exists.
  Reload the page, or warm the cache with `wp sleek pixel cache warm`.
- **Featured images need a media library item.** A post without its own
  featured image gets Pixel's only when the media library holds at least one
  item.
- **The block editor panel** shows only to users who can manage options.

## A render fails

The editor's preview, the block editor panel and the REST operations report a
failed render with the message from ImageMagick, such as `Failed to process
image with ImageMagick: …`, or `Failed to generate image` when no file was
produced. Preview the design with **Preview image** and remove or change the
element the message points to. An element the server cannot draw is skipped
rather than failing the whole image; see
[Rendering differences](/docs/pixel/info/rendering-differences.md#when-an-element-is-missing).

## An image element stays empty

An image element draws only an `http` or `https` address or a file inside the
site or its uploads folder, and only a PNG, JPEG, GIF, BMP, WebP or SVG file.
An SVG must be self-contained: one that links to another file, a stylesheet or
an external image is left out. Check the element's source in the editor, or
convert the file to PNG.

## An old image keeps showing

Pixel renders a new file whenever the design, the post or Pixel's version
changes, but a page cache or CDN in front of the site may keep serving the old
page or file. Clear those caches. `wp sleek pixel cache flush` deletes
Pixel's own rendered files.

## A font will not upload

Each message names the step that failed:

| Message                                            | Cause                                                                             |
| -------------------------------------------------- | --------------------------------------------------------------------------------- |
| `Only ttf, otf, woff and woff2 fonts are allowed.` | The file name does not end in one of those extensions.                            |
| `The uploaded font could not be read.`             | The upload did not reach the server intact.                                       |
| `The uploaded file is not a valid font.`           | The file's content is not a font, whatever its name says.                         |
| `Failed to create the font attachment.`            | WordPress refused to add the file to the media library, usually over permissions. |
| `Failed to create font post.`                      | The file was stored but the font record was not created.                          |

## The Google Fonts key is refused

Pixel asks Google whether a key works before storing it. Check that the **Web
Fonts Developer API** is enabled for the key's project and that any
restrictions on the key allow requests from your site; Pixel sends your site's
address as the referrer. `wp sleek pixel gf-key check` repeats the check from
the command line.
