Troubleshooting Guide
FreshSession Issues
Session Creation Fails
| Symptom | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid API key | Regenerate key in Settings > API Keys |
| 429 Rate Limited | Too many requests | Check plan limits, implement backoff |
| Session limit reached | Max concurrent sessions | Release unused sessions, upgrade plan |
Session Timeouts
typescript
// Default timeout is 5 minutes (300000ms)
// Increase for long-running tasks
const session = await client.sessions.create({
timeout: 1800000 // 30 minutes
});| Plan | Max Session Time |
|---|---|
| Hobby | 15 minutes |
| Starter | 30 minutes |
| Developer | 1 hour |
| Pro | 24 hours |
Orphaned Sessions
typescript
// Release all active sessions at once
await client.sessions.releaseAll();Connection Issues
WebSocket Connection Failed
Error: WebSocket connection to 'wss://connect.steel.dev' failedSolutions:
- Verify API key is correct
- Check session ID is valid UUID format
- Ensure session is in "Live" state
- Check network/firewall allows WebSocket connections
Playwright Connection Issues
typescript
// Ensure you use existing context, don't create new
const page = browser.contexts()[0].pages()[0]; // Correct
// const page = await browser.newPage(); // Wrong - won't be recordedProxy Issues
ERR_TUNNEL_CONNECTION_FAILED
This is normal and transient. Solutions:
- Retry the request (Steel auto-rotates IP)
- Change geographic region
- If using BYOP, verify proxy server is online
ERR_PROXY_CONNECTION_FAILED
- Check BYOP proxy credentials
- Verify proxy server is accessible
- Try different proxy format (http vs socks5)
Site Blocking Despite Proxy
- Try different geographic region
- Use BYOP with specialized provider
- Some sites are on compliance blocklists - contact Steel support
CAPTCHA Issues
CAPTCHAs Not Being Solved
- Verify
solveCaptcha: trueis set - Check plan supports CAPTCHA solving (Developer+)
- Verify CAPTCHA type is supported
- Increase timeout for CAPTCHA-heavy sites
Repeated CAPTCHAs
- Enable residential proxy:
useProxy: true - Add natural delays between actions
- Vary request patterns
- Use browser profiles for session continuity
Authentication Issues
Credentials Not Injecting
- Verify origin matches exactly
- Check namespace matches between credential and session
- Wait at least 2 seconds after navigation
- Check credential was created successfully
Auth Context Not Working
- Capture context before releasing session
- Verify target site uses cookie/JWT auth
- Check if tokens have expired
- Consider using Profiles API for more robust persistence
Profile in FAILED State
- Profile exceeded 300 MB limit
- Create a new profile with less data
- Use auth context as alternative
Docker / Self-Hosting Issues
Chrome Won't Start
bash
# Check container logs
docker logs steel-browser_api_1
# Common issues:
# - Insufficient memory (need 4GB+)
# - ARM architecture (use ARM images)
# - Missing shared librariesUI Can't Connect to API
bash
# Verify both containers running
docker ps
# Check API health
curl http://localhost:3000/api/health
# Check network connectivity
docker exec steel-browser_ui_1 curl http://api:3000/api/healthCLI Issues
Command Not Found
bash
# Reinstall globally
npm install -g @steel-dev/cli
# Or use npx
npx @steel-dev/cli run playwrightAuthentication Failed
bash
steel logout
steel loginTemplate Errors
bash
steel cache --clean
steel forge playwrightGetting Help
- Discord: discord.gg/steel-dev (#help channel)
- GitHub: github.com/steel-dev
- Docs: docs.steel.dev
- CLI: Run
steel supportto join Discord