Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsA Selenium ReadTimeoutError in an AWS Synthetics canary does not identify which timeout to increase. First use the traceback and the canary’s CloudWatch Logs to find the operation waiting for a response. Then distinguish the overall canary deadline from Selenium’s page-load, element-search, and script timeouts, or the HTTP timeout on Selenium’s remote WebDriver connection. They govern different work, so changing the wrong one can delay detection without fixing the failure.
Start with the failed run and traceback
- Open the canary run details and its CloudWatch Logs. Find the failure timestamp and the last logged canary step. If the canary exceeded its overall timeout, Synthetics may stop before success metrics and artifacts such as HAR files, logs, and screenshots are updated. In that case, artifacts may not be available in the console; use CloudWatch Logs to diagnose the run.
- Read the complete exception and traceback. Identify the last Selenium operation that was awaiting a response: navigation with
get(), an element lookup or explicit wait, asynchronous JavaScript, or a command sent to the remote WebDriver endpoint. - Check whether the run ended at the canary deadline. Compare the failure time with the configured timeout and the run’s duration. A canary deadline is an overall run limit, not a Selenium page-load or remote-command timeout.
The name ReadTimeoutError alone is not enough to locate the cause. Without the traceback, it is not possible to tell whether a particular run stalled during browser navigation, while waiting for the WebDriver command endpoint, or on another request. Do not automatically treat it as Selenium’s TimeoutException for page-load completion or as the CloudWatch canary timeout.
Tell the timeout layers apart
| Boundary | What it limits | Clue to investigate |
|---|---|---|
| CloudWatch Synthetics canary timeout | The overall run deadline, including startup and the scripted work. | The run stops at or near its configured deadline; inspect the run details and CloudWatch Logs. |
| Selenium page-load timeout | How long a navigation operation such as browser.get(url) can wait for page loading. |
The traceback stops at navigation or a page-load wait. |
| Element-search or explicit-wait timeout | How long the script waits for an element or a specified application condition. | Navigation has returned, but the expected control or state is not ready. |
| Asynchronous-script timeout | How long Selenium waits for asynchronous JavaScript to finish. | The failing operation executes asynchronous script. |
| Remote WebDriver HTTP request timeout | How long Selenium’s client waits for a response from the WebDriver command endpoint. | The traceback points to a remote command request rather than a page or element condition. |
| Target-site response or reachability | Whether the canary’s Lambda environment can reach the monitored endpoint and receive a response. | Navigation or an HTTP check fails or stalls; investigate the URL, endpoint behavior, and network placement. |
A remote-command read timeout and a slow target-site response can look related, but they are not interchangeable diagnosis points. Use the operation named in the traceback and the matching logs to decide which boundary to change.
Check the canary’s overall time budget
AWS says the canary timeout defaults based on its frequency when no timeout is configured. A manually configured timeout must be no longer than the canary frequency. AWS recommends allowing at least 15 seconds so there is time for Lambda cold starts and canary instrumentation startup. Check the current AWS guidance for your canary configuration before changing either setting: Troubleshooting a failed canary.
#1 Best Overall
- POWERFUL SECURITY KEY: The Security Key C NFC is the essential physical passkey for protecting your digital life from phishing attacks. It ensures only you can access your accounts.
- WORKS WITH 1000+ ACCOUNTS: Compatible with Google, Microsoft, and Apple. A single Security Key C NFC secures 100 of your favorite accounts, including email, password managers, and more.
- FAST & CONVENIENT LOGIN: Plug in your Security Key C NFC via USB-C and tap it, or tap it against your phone (NFC) to authenticate. No batteries, no internet connection, and no extra fees required.
- TRUSTED PASSKEY TECHNOLOGY: Uses the latest passkey standards (FIDO2/WebAuthn & FIDO U2F) but does not support One-Time Passwords. For complex needs, check out the YubiKey 5 Series.
- BUILT TO LAST: Made from tough, waterproof, and crush-resistant materials. Manufactured in Sweden and programmed in the USA with the highest security standards.
Increase the overall budget only when the run is being stopped before its intended work can complete. Ensure the schedule permits the selected timeout, and do not use a longer canary deadline to conceal an endpoint or browser hang.
Match the fix to the Selenium operation
If navigation is the slow step
When the traceback identifies browser.get(url) or navigation, investigate page loading and the monitored endpoint before changing the page-load timeout. Confirm that the canary is requesting the expected URL and that the endpoint responds from the canary’s environment. Selenium provides a page-load timeout for navigation; it does not control the overall Synthetics run deadline.
If the page loads but the element is missing
Do not assume a longer navigation timeout will make an application control appear. Wait for the state the canary actually measures, such as a button becoming clickable, using an explicit, condition-based wait with a useful failure message. AWS’s Selenium sample uses WebDriverWait and an expected condition for a clickable button rather than relying on an arbitrary sleep. See the AWS Selenium canary sample and guidance.
Rank #2
- POWERFUL SECURITY KEY: The YubiKey 5 NFC is the most versatile physical passkey, protecting your digital life from phishing attacks. It ensures only you can access your accounts
- WORKS WITH 1000+ ACCOUNTS: Compatible with popular accounts like Google, Microsoft, and Apple. A single YubiKey 5 NFC secures 100+ of your favorite accounts, including email, password managers, and more
- FAST & CONVENIENT LOGIN: Plug in your YubiKey 5 NFC via USB and tap it, or tap it against your phone (NFC), to authenticate. No batteries, no internet connection, and no extra fees required
- MOST SECURE PASSKEY: Supports FIDO2/WebAuthn, FIDO U2F, Yubico OTP, OATH-TOTP/HOTP, Smart card (PIV), and OpenPGP. That means it’s versatile, working almost anywhere you need it
- PRIMARY & SPARE KEYS: Just like having a spare house key, we recommend buying two YubiKeys - one for daily use and one as a spare. That way you’ll never get locked out of your accounts
Set an implicit element-search timeout only when the script’s element searches need that behavior. Selenium’s implicit wait, explicit waits, and page-load timeout govern different operations; avoid layering long waits without checking how they interact with the canary’s total budget.
If asynchronous JavaScript is waiting
When the failed call runs asynchronous JavaScript, check whether the script reliably signals completion and whether its expected work fits the configured script timeout. Adjust that boundary only if the script is legitimately expected to take longer; a larger value will not fix a stalled page or unreachable endpoint.
If the WebDriver command channel is waiting
If the traceback identifies a read timeout in the remote WebDriver request, investigate the command endpoint and the browser/runtime state before changing Selenium’s remote-connection HTTP timeout. That setting limits how long the client waits for a response to a WebDriver command; it does not make the target website load faster or extend the canary’s run deadline. Consult Selenium’s Python remote-connection API reference alongside its Python exception reference.
Rank #3
- POWERFUL SECURITY KEY: The YubiKey 5C NFC is the most versatile physical passkey, protecting your digital life from phishing attacks. It ensures only you can access your accounts
- WORKS WITH 1000+ ACCOUNTS: Compatible with popular accounts like Google, Microsoft, and Apple. A single YubiKey 5C NFC secures 100+ of your favorite accounts, including email, password managers, and more
- FAST & CONVENIENT LOGIN: Plug in your YubiKey 5C NFC via USB and tap it, or tap it against your phone (NFC), to authenticate. No batteries, no internet connection, and no extra fees required
- MOST SECURE PASSKEY: Supports FIDO2/WebAuthn, FIDO U2F, Yubico OTP, OATH-TOTP/HOTP, Smart card (PIV), and OpenPGP. That means it’s versatile, working almost anywhere you need it
- PRIMARY & SPARE KEYS: Just like having a spare house key, we recommend buying two YubiKeys - one for daily use and one as a spare. That way you’ll never get locked out of your accounts
Check endpoint access and network placement
Verify that the URL is correct, that the monitored service is responding as expected, and that the canary’s Lambda environment has a network path to it. For internal endpoints, AWS recommends placing the canary in a VPC. AWS also documents the Synthetics Selenium helper get_http_response(url) for an HTTP response check; if its request raises an exception, the helper returns an error marker. Use the check to distinguish an HTTP reachability problem from a later browser interaction, not as proof that the full page or user journey works. Refer to AWS canary troubleshooting for current guidance.
Verify the selected Synthetics runtime
Check the runtime selected by the canary and the bundled Python, Selenium, and Chromium versions in AWS’s Synthetics runtime documentation. The AWS runtime matrix currently lists syn-python-selenium-12.0 with Python 3.12, Selenium 4.32.0, and Chromium 150.0.7871.24. These versions are volatile; confirm the matrix and your canary’s actual runtime before relying on them. AWS recommends using the latest runtime. Test an upgrade safely, such as on a clone or with a supported dry run, before changing a production canary.
Recommended Free Tools
Make the next failure easier to diagnose
- Give canary steps meaningful names and log useful context immediately before and after navigation and waits. AWS documents step execution in its Synthetics library guide.
- Use specific failure messages for expected conditions so logs show what the script was waiting for, following the approach in the AWS Selenium sample.
- Keep a clear failure when the monitored behavior fails. Suppressing an exception to produce a green canary makes the signal less useful.
- When the canary times out, check CloudWatch Logs even if expected console artifacts are absent; the overall timeout can prevent those artifacts from being updated.
Common failure patterns and fixes
| What you see | Likely boundary to check | Next action |
|---|---|---|
| The canary ends at its configured maximum duration. | Overall Synthetics run deadline. | Confirm the required work and startup fit within the budget; check the frequency constraint and AWS’s minimum 15-second recommendation. |
The traceback stops at get() or navigation. |
Page load, target response, or endpoint reachability. | Check the URL, endpoint response, canary network access, and Selenium page-load setting. |
| Navigation finishes, but a later element wait fails. | Application readiness or element-search wait. | Wait for the specific expected condition with an informative failure message; investigate whether the application rendered the expected state. |
| The exception points to an asynchronous script. | Selenium script timeout or script completion behavior. | Check the script’s completion signal and adjust only its relevant timeout if the expected work needs more time. |
| The traceback points to a remote WebDriver request read timeout. | Client-to-WebDriver command response or browser/runtime health. | Inspect the command and runtime logs; do not treat the remote HTTP timeout as a page-load or canary timeout. |
| Only internal URLs fail from the canary. | Network placement and access from Lambda. | Check connectivity and whether the canary should run in a VPC. |
| Failures begin after a runtime change. | Bundled browser or dependency versions. | Compare the selected runtime and version matrix; test a supported runtime upgrade or rollback safely. |
Or skip the browser setup
If the task is to capture a website screenshot rather than test a Selenium user journey, ScreenshotNeo offers a one-request screenshot API. It does not replace a canary that needs to verify application behavior, but can avoid maintaining browser capture setup for screenshot jobs.
Rank #4
- POWERFUL SECURITY KEY: The Security Key NFC is the essential physical passkey for protecting your digital life from phishing attacks. It ensures only you can access your accounts.
- WORKS WITH 1000+ ACCOUNTS: Compatible with Google, Microsoft, and Apple. A single Security Key NFC secures 100 of your favorite accounts, including email, password managers, and more.
- FAST & CONVENIENT LOGIN: Plug in your Security Key NFC via USB-A and tap it, or tap it against your phone (NFC) to authenticate. No batteries, no internet connection, and no extra fees required.
- TRUSTED PASSKEY TECHNOLOGY: Uses the latest passkey standards (FIDO2/WebAuthn & FIDO U2F) but does not support One-Time Passwords. For complex needs, check out the YubiKey 5 Series.
- BUILT TO LAST: Made from tough, waterproof, and crush-resistant materials. Manufactured in Sweden and programmed in the USA with the highest security standards.
Example using cURL; replace the target URL and API key:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are not billed. An MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for free.
Frequently Asked Questions
Does every Selenium ReadTimeoutError mean the target website is down?
No. The traceback may point to a remote WebDriver command or another request. Check the exact operation and canary logs before attributing the timeout to the site.
Can I set the Synthetics timeout longer than the canary frequency?
No. AWS says a manually configured canary timeout must be no longer than its frequency.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

