# HTTP request failed: java.net.SocketTimeoutException: Connect Timeout

> Canonical HTML version: https://rocketvalidator.com/html-validation/http-request-failed-java-net-sockettimeoutexception-connect-timeout
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

This error is not an HTML validation issue — it is a network connectivity problem between your browser (or the W3C validator tool) and the server it is trying to reach.

The W3C Markup Validation Service at `https://validator.w3.org` needs to fetch your webpage over HTTP to check it. A `SocketTimeoutException: Connect Timeout` means the validator's server could not establish a connection to your URL within its time limit. Common causes include:

- The target server is down or unreachable from the validator's network.
- A firewall or security group blocks incoming requests from external servers.
- The server is behind a VPN, on `localhost`, or on a private network that the validator cannot access.
- DNS resolution fails for the provided URL.
- The server takes too long to respond, exceeding the validator's timeout threshold.

## How to work around it

If the validator cannot reach your site, validate the HTML directly instead of providing a URL. Copy your HTML source and paste it into the "Validate by Direct Input" tab on `https://validator.w3.org/#validate_by_input`. You can also use the "Validate by File Upload" option to upload an `.html` file from your machine.

For local development, the [Nu Html Checker](https://validator.github.io/validator/) can run locally as a standalone Java application or Docker container, which removes the need for any external network access:

```sh
java -cp vnu.jar nu.validator.servlet.Main 8888
```

This starts a local instance of the validator on port `8888`, and you can validate pages hosted on `localhost` without timeout issues.
