Skip to content

Troubleshooting

Resolve connection, authentication, metadata and deployment issues.

The UI cannot reach the registry

Check the registry origin from the frontend server's network environment. In a container, localhost points to the container itself. A common Compose upstream is http://registry:5000.

curl -i http://127.0.0.1:5000/v2/

An anonymous registry should return success. An authenticated one can return 401 with a WWW-Authenticate challenge. A connection refusal means the listener, address or network path is not ready.

Sign-in fails

Confirm that the registry uses native htpasswd Basic Auth and that its bcrypt file is mounted correctly. An external Bearer-token challenge is not supported by the current UI.

For repeated session loss, check that all frontend instances share NUXT_SESSION_PASSWORD. A process-local generated secret changes after a restart. Also verify HTTPS and forwarded protocol headers; browser sessions require the cookie to return to the same origin.

My image has no description or creation date

These values must exist in the manifest annotations or image config. Crateview does not infer missing metadata or substitute registry push times. Add the appropriate OCI annotations when building your images.

Referrers are empty

The registry needs to expose the OCI referrers endpoint or the standard digest-tag fallback index. OCI clients are responsible for maintaining that fallback index when required. Merely pushing a subject-bearing manifest into a registry without referrers support does not make Crateview scan all tags for it.

Deletion is missing or rejected

Enable both Crateview's NUXT_REGISTRY_DELETE_ENABLED and Distribution's storage delete setting. The registry can still reject the request according to its permissions or implementation. Deletion works by digest and may affect multiple tags.

Production ignores my .env file

node .output/server/index.mjs does not automatically load .env. Export variables through your process manager, container environment or shell. Restart after changing runtime values. A static-only web host cannot replace the required Nitro server.

The copied pull command does not work

The command uses the public frontend address. Confirm that the CLI can reach that origin and trusts its TLS certificate. Authenticate the CLI separately when needed. A browser sign-in does not create a Docker CLI login.

If you find a reproducible UI issue, open an issue with the affected revision and sanitized reproduction details. Use the private security channel for vulnerabilities.