Troubleshooting
Why did my task fail or terminate?
Why did my task fail or terminate?
- Run status — Use
get_run(run_id)to see the status andfailure_reason - Timeline — Use
get_run_timeline(run_id)to find which block failed - Artifacts — Check
screenshot_finalto see where it stopped, andrecordingto watch what happened
terminated— The AI couldn’t complete the goal (CAPTCHA, login blocked, element not found)timed_out— Exceededmax_steps. Increase it or simplify the taskfailed— System error (browser crash, network failure)
Why is the AI clicking the wrong element?
Why is the AI clicking the wrong element?
- Add visual context — “Click the blue Submit button at the bottom of the form”
- Reference surrounding text — “Click Download in the row that says ‘January 2024’”
- Be specific about position — “Click the first result” or “Click the link in the header”
llm_response_parsed artifact to see what action the AI decided to take.Why is my task timing out?
Why is my task timing out?
max_steps (default: 50). This happens when:- The task is too complex for the step limit
- The AI gets stuck in a navigation loop
- Missing completion criteria causes infinite attempts
- Increase
max_stepsin your task parameters - Add explicit completion criteria: “COMPLETE when you see ‘Order confirmed’”
- Break complex tasks into multiple workflow blocks
Why can't Skyvern find an element on the page?
Why can't Skyvern find an element on the page?
- Load dynamically after the page appears
- Are inside an iframe
- Require scrolling to become visible
- Use unusual rendering (canvas, shadow DOM)
- Add
max_screenshot_scrollsto capture lazy-loaded content - Describe elements visually rather than by technical properties
- Add explicit wait or scroll instructions in your prompt
Why is the extracted data wrong or incomplete?
Why is the extracted data wrong or incomplete?
screenshot_final artifact to verify the AI ended on the right page.Common causes:- Prompt was ambiguous about what to extract
data_extraction_schemadescriptions weren’t specific enough- Multiple similar elements and the AI picked the wrong one
- Add specific descriptions:
"description": "The price in USD, without currency symbol" - Add visual hints: “The price is displayed in bold below the product title”
Workflows
How do I pass parameters to a workflow?
How do I pass parameters to a workflow?
{{ parameter_name }} syntax. See Workflow Parameters for details.How do I use credentials in a workflow?
How do I use credentials in a workflow?
- Store credentials — Go to Settings > Credentials and add your login
- Reference in workflow — Select the credential in the Login block’s credential dropdown
- Never hardcode — Don’t put passwords directly in prompts
Can I run workflows on a schedule?
Can I run workflows on a schedule?
- Cron jobs — Call the Skyvern API on a schedule
- Zapier/Make — Trigger workflows from automation platforms
- Your backend — Integrate scheduling into your application
Why isn't my workflow using the parameter values I passed?
Why isn't my workflow using the parameter values I passed?
- Correct:
{{ parameter_name }} - Wrong:
{parameter_name}or$parameter_name
- The parameter name matches exactly (case-sensitive)
- The parameter is defined in the workflow’s parameter list
- You’re passing the parameter when starting the run, not after
How do I run workflows sequentially with the same credentials?
How do I run workflows sequentially with the same credentials?
- Enable “Run Sequentially” in workflow settings
- Set the sequential key to your credential identifier
- Skyvern will queue runs that share the same credential
Configuration
Where do I find my API key?
Where do I find my API key?
skyvern init to generate a local API key, which will be saved in your .env file.How do I change the LLM model?
How do I change the LLM model?
skyvern init llm to reconfigure, or set these environment variables:LLM_KEY— Primary model (e.g.,OPENAI_GPT4O,ANTHROPIC_CLAUDE_SONNET)SECONDARY_LLM_KEY— Optional lightweight model for faster operations
How do I configure proxy settings?
How do I configure proxy settings?
proxy_location when running a task:RESIDENTIAL_US, RESIDENTIAL_UK, RESIDENTIAL_ISP, and more. Use RESIDENTIAL_ISP for sites that require consistent IP addresses.Can I increase the max steps limit beyond 75?
Can I increase the max steps limit beyond 75?
API & Integration
How do I poll for task completion?
How do I poll for task completion?
Where can I find extracted data after a run completes?
Where can I find extracted data after a run completes?
run.output:run.downloaded_files which contains signed URLs.How do I get the recording URL from the API?
How do I get the recording URL from the API?
How do I trigger a workflow via API?
How do I trigger a workflow via API?
run_workflow method:Authentication & Credentials
Why is my login failing?
Why is my login failing?
- Credentials expired — Verify username/password in your credential store
- CAPTCHA appeared — Use a browser profile with an existing session
- MFA required — Configure TOTP if the site requires 2FA
- Site detected automation — Use
RESIDENTIAL_ISPproxy for trusted IPs
recording artifact to see exactly what happened during login.How do I handle CAPTCHA?
How do I handle CAPTCHA?
- Browser profile — Create a profile with an authenticated session that skips login entirely
- Human interaction block — Pause the workflow for manual CAPTCHA solving
- Residential proxy — Use
RESIDENTIAL_ISPfor static IPs that sites trust more
How do I set up 2FA/TOTP?
How do I set up 2FA/TOTP?
- Go to Settings > Credentials
- Create a new TOTP credential with your authenticator secret
- Reference the TOTP credential in your workflow’s login block
How do I handle email OTP verification?
How do I handle email OTP verification?
- Set up an email listener (Zapier, custom webhook, etc.)
- When the OTP arrives, send it back to Skyvern via the API
- Use a Human Interaction block to wait for the code
Browser & Proxy
Why is the site blocking Skyvern?
Why is the site blocking Skyvern?
- IP reputation (datacenter IPs are often blocked)
- Browser fingerprinting
- Rate limiting
- Use
RESIDENTIAL_ISPproxy for consistent, trusted IPs - Create a browser profile with an existing authenticated session
- Slow down requests by adding explicit waits in your prompt
How do I persist cookies across runs?
How do I persist cookies across runs?
Can I connect Skyvern to my local browser?
Can I connect Skyvern to my local browser?
Why am I getting a 504 timeout when creating browser sessions?
Why am I getting a 504 timeout when creating browser sessions?
- Wait a few seconds and retry
- Check your rate limits
- For self-hosted: verify your infrastructure has sufficient resources
Self-Hosting & Deployment
What are the requirements for self-hosting Skyvern?
What are the requirements for self-hosting Skyvern?
- Python 3.11, 3.12, or 3.13
- PostgreSQL database
- An LLM API key (OpenAI, Anthropic, Azure, Gemini, or Ollama)
- Docker (optional, for containerized deployment)
skyvern init for an interactive setup wizard. See the Quickstart for full instructions.How do I update my self-hosted Skyvern instance?
How do I update my self-hosted Skyvern instance?
How do I configure a custom LLM provider?
How do I configure a custom LLM provider?
skyvern init llm for guided configuration.Billing & Pricing
How is pricing calculated?
How is pricing calculated?
- Pay-as-you-go — Charged per step or per task completion
- Enterprise — Custom pricing based on volume
Why does it say insufficient balance when I have credit?
Why does it say insufficient balance when I have credit?
- Active runs that haven’t completed yet
- Failed runs that consumed partial credit
- Pending charges that haven’t settled
How do I get invoices for my payments?
How do I get invoices for my payments?

