Cause: OpenGL/MESA graphics errors in WSL2 (Windows Subsystem for Linux)
Solution: These are harmless warnings - the frontend should still work. They're suppressed in dev.sh.
If you see these errors but frontend still doesn't work:
- Check if
node_modulesexists:ls frontend/node_modules - If missing, install:
cd frontend && npm install - Try starting manually:
cd frontend && npm run dev
Symptoms:
- No
node_modules/directory infrontend/ - Vite fails to start
- Port 5173 not listening
Solution:
cd frontend
npm installThe dev.sh script now automatically installs dependencies if missing.
Cause: Vite 7 requires Node 20.19+ or 22.12+, but you have Node 18.x
Impact: Frontend will not start - this is a hard requirement
Option 1: Using nvm (Recommended)
# Install nvm if not installed
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
# Install and use Node 20
nvm install 20
nvm use 20
nvm alias default 20 # Set as default
# Verify
node --version # Should show v20.x.xOption 2: Using NodeSource (Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
node --version # Should show v20.x.xOption 3: Downgrade Vite (Not Recommended) If you can't upgrade Node, downgrade Vite to version 5.x (compatible with Node 18):
cd frontend
npm install vite@^5.0.0 --save-devAfter upgrading Node:
cd frontend
rm -rf node_modules package-lock.json
npm install
npm run devcurl http://localhost:8000/healthnetstat -tuln | grep 8000
# or
ss -tuln | grep 8000pkill -f uvicornIf you get "Address already in use":
# Find process using port
lsof -i :8000 # or :5173
# Kill it
kill <PID>Normal - first-time cache build takes 5-10 minutes. The "reading cea isp data files" messages are expected.
Once built, cache is saved to output/cache/ and won't rebuild.
- Verify backend is running:
curl http://localhost:8000/health - Check browser console for errors
- Verify ports match:
- Backend: 8000 (in
dev.sh) - Frontend: 5173 (Vite default)
- Backend: 8000 (in
- MESA errors are harmless in WSL2
- Suppressed in
dev.shwithLIBGL_ALWAYS_SOFTWARE=1 - Frontend should still work
- If
localhostdoesn't work, try127.0.0.1 - WSL2 networking can be tricky - check Windows firewall
- Check logs: Look at terminal output from
./dev.sh - Check processes:
ps aux | grep -E "(vite|uvicorn|node)" - Check ports:
netstat -tuln | grep -E ":(8000|5173)" - Restart: Kill all processes and run
./dev.shagain