Skip to content

Troubleshooting

The wall loads pictures as WebGL textures, so every image needs CORS. A picture without Access-Control-Allow-Origin: * (or the requesting origin) cannot be used as a texture, and its card falls back to the title.

  1. Open the browser console and the network panel. Look for a blocked image request.
  2. Make the image host send Access-Control-Allow-Origin.
  3. List the host in media.hosts of the manifest. The validator then checks it.

Videos need the same header.

The headset shows broken pictures that work on desktop

Section titled “The headset shows broken pictures that work on desktop”

A headset that browsed your site before the CDN sent CORS headers can hold those images in its HTTP cache, without the header, and reuse that entry for the wall’s request. The wall asks for each picture with an xr query parameter (?xr=1, and a unique value on a retry) so that it misses such an entry. Two things can still go wrong:

  • your CDN ignores the query string and serves the old object. Make it pass the query to the cache key;
  • the image URL has a signature that the extra parameter breaks. Send the sizes you want in image, image_focus and image_full of the feed, and sign them in a way that allows an added parameter.

Many nginx configurations deny dotfiles. Allow /.well-known/. The WordPress page has an example.

The manifest loads, but the wall is not built

Section titled “The manifest loads, but the wall is not built”
  • "policy": "deny" stops the wall on purpose.
  • version must be the integer 1.
  • feeds needs at least one feed.
  • Run diazoma-spec validate https://your-site and read the failing check.

Search needs a feed with "type": "search" and {query} in its URL. The query is URL-encoded.

The feed must return next in its response. A missing or empty next ends the feed. See Feeds.

The call returned 401, 403 or 419. If you use cookie sessions, declare auth.csrf in the manifest and make sure the wall’s page is on the same origin as the manifest. See Actions and login.

The wall clamps values outside the limits and writes a [diazoma] view: warning to the console. Check the console. Colours must be hex.

See the FAQ.