Self-hosted dashboard returns HTTP 500: missing `@radix-ui/react-icons-311a50637b01fce4`
Most of the latest published dashboard images start successfully but returns HTTP 500 on GET /.
I reproduced this independently using the official Compose configuration, fresh data volumes, and matched backend/dashboard revisions. No application code, bind mounts or existing database were used.
Results
| Revision | Platform | Backend /version |
Dashboard / |
|---|---|---|---|
849a6fc605b5a910c9834b61a77c5475cc24d189 |
ARM64, native (latest) |
200 | 500 |
bbca5ed2d8ca058f3cd58660e1b5ac871cbc7fd6 |
ARM64, native | 200 | 500 |
42e27e8308998d256d20c9f1fcc35a9230a9c4ca |
ARM64, older control | 200 | 200 |
Host: Apple Silicon Mac, Docker Desktop 4.84.0, Docker Engine 29.6.2.
Error
The dashboard reports Next.js 16.3.3 and Ready in 0ms, then logs:
Error: Failed to load external module @radix-ui/react-icons-311a50637b01fce4:
Error: Cannot find module '@radix-ui/react-icons-311a50637b01fce4'
Require stack:
- /app/.next/server/chunks/ssr/[root-of-the-server]__1lbpoc0._.js
- /app/.next/server/chunks/ssr/[turbopack]_runtime.js
- /app/.next/server/pages/_document.js
...
- /app/server.jsI've also tested AMD64 (emulated). Subsequent requests repeatedly returned 500 with the same missing-module error.
Reproduction
- Start from the official self-hosted Compose configuration in an empty directory.
- Pin both services:
services:
backend:
image: ghcr.io/get-convex/convex-backend:bbca5ed2d8ca058f3cd58660e1b5ac871cbc7fd6
dashboard:
image: ghcr.io/get-convex/convex-dashboard:bbca5ed2d8ca058f3cd58660e1b5ac871cbc7fd6- Use a new Compose project and fresh volume. Keep the official environment defaults, including
NEXT_PUBLIC_DEPLOYMENT_URL. - Start the services, wait for backend health and dashboard readiness, then request:
curl -i http://127.0.0.1:3210/version
curl -i http://127.0.0.1:6791/
docker compose logs --no-color dashboardExpected: dashboard root loads successfully.
Actual: backend is healthy, but dashboard root returns 500.
Possible investigation area
The dashboard Dockerfile uses pnpm deploy --legacy --prod, then copies the standalone server.js to /app/server.js. Could the generated external-module references require files or links that are missing from the resulting runtime layout?
Source: get-convex/convex-backend