Troubleshooting & FAQ
Here are the most common issues developers face when integrating Test Garden and how to solve them.
1. Property Verification Fails
If your website stays in the pending state after registration:
- Ensure the Chrome Extension is active: Open Google Chrome and check that the Test Garden Helper extension is loaded and active in your browser. Since Test Garden relies on the extension to inject the recorder script, it will not connect without it.
- Handshake Verification URL: Ensure you open the visual workspace for the registered property. The dashboard needs to establish a handshake connection with the extension inside the iframe to verify the property.
- Check browser console: Open Developer Tools (
F12) on your website inside the workspace view and check for any script errors or blocked network calls.
2. Iframe refuses to load ("Refused to display in a frame")
If your workspace loads a grey screen with a browser error:
- Root Cause: Your server is sending headers that block embedding inside iframes.
- Solution: Check your
X-Frame-OptionsandContent-Security-Policyheaders.- Remove
X-Frame-Options: DENYorX-Frame-Options: SAMEORIGINon your staging/preview environments. - Configure
Content-Security-Policy: frame-ancestors 'self' https://testgarden.dev https://*.testgarden.dev;.
- Remove
[!TIP] Use Vercel Preview branch domains for testing
If you host your website on Vercel, the production deployment will typically enforce security headers that block iframe embedding. Instead of changing production headers, register and test your Vercel Preview branch domains (e.g.
https://my-app-git-branch-team.vercel.app) in the Test Garden dashboard. Preview domains bypass these strict security rules by default, letting the recorder run smoothly.
3. Local sandbox is blank in local dashboard
If you run the dashboard on localhost:3000 but the iframe is blocked:
- Mixed Content: You are trying to load an insecure local script inside a secure production URL (
https://mywebsite.com), or vice-versa. - Solution: Ensure both the dashboard and your sandbox app are running over plain HTTP during local tests:
- Dashboard:
http://localhost:3000 - Sandbox:
http://localhost:3001 - Make sure you register
localhost:3001as the property in your local dashboard database.
- Dashboard: