Troubleshooting
This page covers common issues you may encounter when installing, running, or using WrightTest.
Start with the section that matches your problem. If you are not sure where the issue is, check container status and logs first.
Check container status
In a Docker setup, start by checking running services:
docker compose psThen inspect logs:
docker compose logsCommon services may include:
- frontend
- backend
- postgres
- redis
- novnc
Service names depend on your docker-compose.yml.
The current Docker Compose setup does not run a separate worker container. Manual runs, scheduled runs, queue processing, and scheduler logic are handled by the backend service.
For a specific service, use the actual service name, for example:
docker compose logs backend
docker compose logs postgres
docker compose logs redis
docker compose logs novnc
docker compose logs frontendHealth checks
If the backend is reachable, you can check the HTTP health endpoints:
curl http://localhost:3000/health
curl http://localhost:3000/health/dbThe application does not open
Symptoms:
- Browser cannot open the WrightTest URL
- The page shows a connection error
- The frontend container exits
What to check:
- Make sure containers are running:
docker compose ps- Check frontend logs:
docker compose logs frontend- Check that the frontend port is available
- Restart the stack:
docker compose down
docker compose up --buildThe app opens, but data is missing
Symptoms:
- Dashboard opens but shows no projects or runs
- Requests fail in browser DevTools
- Pages show loading or empty states unexpectedly
What to check:
- Make sure the backend API is running
- Check that the frontend points to the correct API URL
- Check backend logs
- Check browser DevTools Network tab for failed API requests
docker compose logs backendBrowser checks stay pending
Symptoms:
- A check run is created but never starts
- Run status stays pending
- Dashboard and Runs page do not update
Common causes:
- Redis is not running
- Queue worker cannot connect to Redis
- Backend process cannot access the database or API
What to check:
docker compose ps
docker compose logs redis
docker compose logs backendRestart the stack if needed:
docker compose down
docker compose up --buildBrowser check fails immediately
Symptoms:
- Run status becomes failed very quickly
- No screenshots are generated
- Trace is unavailable
- Error mentions browser launch, executable path, or missing dependencies
Common causes:
- Playwright browser is not installed
- Browser container is not available
- Backend does not have required OS dependencies
- The target URL is not reachable from inside the container
What to check:
Install Playwright browsers if needed:
pnpm exec playwright installIf your runner uses Docker images with browsers preinstalled, rebuild containers:
docker compose up --buildCheck backend logs:
docker compose logs backendRecorder does not open
Symptoms:
- Clicking Start recording opens an empty or broken recorder view
- noVNC does not connect
- Browser window is not visible
- Recording session never starts
Common causes:
- noVNC service is not running
- Browser or virtual display service is not running
- Required ports are blocked or already in use
- Internal recorder URLs are misconfigured
What to check:
- Check noVNC service status:
docker compose ps- Check noVNC logs:
docker compose logs novnc- Check backend logs for recording session errors
- Restart the stack:
docker compose down
docker compose up --buildEnvironment variable is not resolved
Symptoms:
- Check uses
{{BASE_URL}}, but the run opens an invalid URL - Run fails because target URL is empty
- Schedule run behaves differently from manual run
What to check:
- Open the project Environments tab
- Make sure the environment exists
- Make sure
BASE_URLis defined - Make sure the check or schedule uses the correct environment
- Check variable spelling
Variables are case-sensitive.
Correct:
{{BASE_URL}}Incorrect:
{{base_url}}Check fails because an element is not found
Symptoms:
- Error mentions timeout
- Error mentions locator
- Failed step is Click element, Wait for element, or an assertion
- Screenshot shows the page, but the expected element is missing
What to check:
- Open the Run Result page
- Check the failed step
- Review the screenshot for the failed step
- Open the Playwright trace if available
- Confirm the locator is stable
- Add a wait step if the element appears asynchronously
- Prefer role-based or test-id locators where possible
If the page loads dynamic content, a check may need an explicit wait step before the assertion.
Trace is unavailable
Symptoms:
- Run Result shows Trace unavailable
- No trace viewer is shown
- Download trace is not available
Common causes:
- Browser context failed before tracing started
- Runner failed before the trace could be saved
- Storage path is not writable
- Trace file was deleted or not persisted
What to check:
- Check backend logs
- Check artifact storage permissions
- Verify that the run reached browser execution
- Re-run the check
docker compose logs backendIf screenshots exist but trace does not, the issue may be in trace finalization or artifact storage.
Screenshots are missing
Symptoms:
- Run result exists, but screenshots are not shown
- Step results exist without screenshot links
Common causes:
- Screenshot storage path is not writable
- Runner failed before screenshots were captured
- Artifact URL configuration is incorrect
- Files were removed from the artifact volume
What to check:
- Check backend logs
- Check backend API artifact routes
- Check storage permissions
- Re-run the check
Schedule does not run
Symptoms:
- Schedule is active, but no runs are created
- Next run time passes without execution
- Schedule history is empty
Common causes:
- Scheduler process is not running
- Redis queue is unavailable
- Cron expression is incorrect
- Timezone expectation is wrong
- Target check or suite was deleted
What to check:
- Open the Schedules tab
- Verify schedule status is Active
- Check cron expression and timezone
- Check backend logs
- Check Redis logs
- Try Run now
docker compose logs backend
docker compose logs redisBrowser support
WrightTest currently runs checks with Chromium.
Firefox and WebKit are not supported in the current version.
If your workflow requires Firefox or WebKit coverage, treat this as a current limitation and track roadmap updates.
Alert notification is not sent
Symptoms:
- Telegram or Slack alert is configured
- Run fails, but no notification arrives
- Test notification fails
What to check:
For Telegram:
- Bot token is correct
- Chat ID is correct
- Bot was added to the chat or channel
- Bot has permission to send messages
For Slack:
- Webhook URL is correct
- Webhook is still active
- Workspace did not revoke the webhook
Also check:
- notification rules
- alert channel status
- backend logs
docker compose logs backendAlert is too noisy
Cause:
- Passed run notifications may be enabled
Recommendation:
- Failed runs: enabled
- Recovered runs: enabled
- Passed runs: disabled
This sends notifications when something breaks and when it recovers, without sending a message for every successful run.
Import from .spec.ts does not parse all steps
Symptoms:
- Some Playwright commands are missing after import
- Imported check has fewer steps than expected
- Custom helper functions are ignored
Explanation:
WrightTest can import common Playwright actions and assertions, but complex custom code may not map cleanly to visual steps.
What to do:
- Review imported steps manually
- Add missing steps in the editor
- Keep exported and imported specs simple when using the visual editor
- Use native Playwright code for complex scenarios that do not fit the visual step model
When to check logs
Check logs whenever:
- a run stays pending
- trace is unavailable
- screenshots are missing
- schedules do not fire
- alerts are not sent
- the recorder does not open
- the backend returns errors
Useful commands:
docker compose ps
docker compose logs
docker compose logs backend
docker compose logs postgres
docker compose logs redis
docker compose logs novnc
docker compose logs frontendStill stuck?
When reporting an issue, include:
- WrightTest version
- git commit
- browser check name
- project name
- run ID
- error message
- screenshot of the Run Result page
- relevant container logs
Do not include secrets, webhook URLs, bot tokens, passwords, or .env files in public issue reports.