Website Opens but the Test Fails: CORS, 403 and Timeouts

Troubleshoot failed website connectivity checks across DNS, TLS and HTTP. Understand CORS, status 403 and timeouts before concluding that your IP is blocked.

Partially open laptop against a dark background

You've already opened the website in your browser, yet the detection tool on the other side shows a red light. At this point, two opposite judgments are most likely to arise: either you think your IP is blocked, or you conclude that the detection tool is completely useless.

Don't rush to take sides. Opening the homepage directly, reading an endpoint with a webpage script, and making a request from a remote server are three different tests. Only when the target, request method, egress point, and success criteria are sufficiently consistent can the results be directly compared.

The goal of troubleshooting this kind of issue is not to find a way to turn the card green, but to determine at which step the failure occurs and whether it will affect what you actually need to do.

First ask the detection tool: which segment are you testing?

"Connectivity" is not a state that covers all functionality. A single access may at least go through domain resolution, network connection, secure connection, and application processing, while account permissions are another layer of judgment.

Check Item

What Success Can Indicate

What It Cannot Conclude

DNS Resolution

The selected resolution path returned the domain record

The corresponding address is definitely accessible

TCP Connection

The target address and port can be connected from the test location

The HTTPS certificate or page functionality is normal

TLS Handshake

This connection completed the relevant security negotiation

Login and business endpoints are usable

HTTP Response

The target or an intermediate service returned a response

The response content is definitely the expected page

Actual Page Use

The current session completed a certain operation

Other accounts, protocols, and egress points are the same

Successfully reaching an icon, a static resource, or a status endpoint only proves that the detection target responded at that time. It cannot replace verification of login, upload, payment, or other business functionalities.

Similarly, a lack of Ping response cannot by itself prove that a website is unavailable. ICMP uses a different protocol than web access, and a network may not respond to the former while still allowing normal HTTPS connections.

Category 1: The webpage opens, but the detection script cannot read the result

For these issues, cross-origin restrictions should be considered first.

Suppose a detection page runs on site A, and its script tries to read a response from site B. The browser will check whether site B allows this origin to read data; this is a different permission issue than a user opening site B directly in the address bar.

MDN's CORS guide explains that cross-origin requests are subject to browser security mechanisms. The request may have reached the target, but the response cannot be provided to the script; or it may not have received permission to continue the request during the preflight stage.

More tricky is that the errors the script receives are often not specific enough. It may not be able to distinguish between cross-origin restrictions, connection problems, and other failure causes. If a detection tool displays all these situations as "unreachable", it is easy to mistakenly write "cannot be verified" as "definitely unavailable".

Ordinary users can check whether direct access is stable and whether the page is running normally, and keep the error information from the detection. Developers should check the browser console and network records to confirm whether there are CORS or preflight errors, rather than drawing conclusions about an IP based solely on a generic exception.

Do not disable the browser's security protections just to verify connectivity. The resulting environment has already deviated from that of a normal user, and it cannot fix the target service's cross-origin policy.

Category 2: Different request methods, paths, or login states

Some detection programs use HEAD requests to reduce traffic. According to MDN's documentation on HEAD, this method is used to obtain relevant response headers and does not return a response body.

However, a particular website may apply different rules to HEAD, GET, and business APIs. For example, a certain path may not allow HEAD, while a GET issued by a user's browser can retrieve the page normally. In this case, what should be checked is the request method and target path; the failure of a single path cannot be generalized to the unavailability of the entire website.

Login state can also cause differences. When you open the website directly, the browser may already have a valid session saved; the detection script may not have the same cookies, access tokens, or other context. Conversely, a normal response from the homepage does not mean that a service behind the login has passed the test.

For these issues, it is recommended to first define clear success criteria: is it being able to open the homepage, log into your account, or complete a normal operation? Once the criteria are clear, choose the corresponding verification method.

Category 3: A response was received, but it is not the response you expected

403: The request was denied, but that does not prove the IP has been permanently banned

Cloudflare's explanation of 403 errors lists related causes such as permission and security rules. The website origin, CDN, or security policies may all be involved in processing the request.

In some cases, the error page may provide a request ID, rule hint, or a support channel that can be contacted. Keeping this information is more helpful for locating the issue than just telling customer service "my IP doesn't work".

However, do not treat a brand logo on an error page as the sole responsibility. Ultimately, it is necessary to combine the services the request passed through and the website configuration to determine who should handle it.

429: Reduce requests first; do not treat refreshing as troubleshooting

429 usually indicates that the request rate is limited. The limit may be applied to the IP, or to the account, credentials, cookies, or specific resources; not all services count in the same way.

RFC 6585 does not specify how the server must identify the requester; MDN's 429 documentation also explains different rate-limiting methods and the possible Retry-After waiting hint that may be returned.

When you see rate limiting, stop consecutive refreshes and batch retries, and comply with the waiting requirements given by the service. Using more requests to verify a rate-limited result may actually keep the troubleshooting affected by rate limiting.

Timeout: First look at the test threshold and failure stage

A timeout only means that the detection did not complete within the set time. The failure may occur during resolution, connection, security negotiation, or waiting for the response, and may also be related to browser queuing, device load, or concurrent detection.

"Detection duration" is not necessarily equal to network round-trip latency. An HTTP detection result may include service processing and resource transfer time, and cannot be directly compared with Ping figures.

A brief timeout is worth retesting after a normal interval; a persistent timeout requires preserving the failure stage. Do not conclude that an address is long-term unavailable based solely on a single threshold exceedance.

Category 4: The two tests did not originate from the same egress

Browser proxies, system proxies, and VPNs may cover different applications and protocols. When a device has both IPv4 and IPv6, the two types of requests may also take different paths.

There is another easily overlooked situation: the detection tool uses a remote server to request the target. It reflects the reachability from that test location, not the access capability of the public IP you are currently using.

If your question is "can my IP access this application", the core evidence should come from actual access from the current device and current network. Remote checks can help confirm whether the server side is generally abnormal, but they cannot replace local egress verification.

Therefore, when comparing results, at least verify the test source, address family, proxy status, and target address. Writing only "both test the same website" is not enough to show that the test conditions are consistent.

Change only one condition at a time to locate the problem much faster

First, record the current public address through IP lookup, then use Service connectivity tests as a comparison with normal access. Next, check item by item according to the actual symptoms.

  1. On the same network and same browser, confirm whether the target page or function is stable and usable.

  2. Check the detection target and returned reason to distinguish between cross-origin restrictions, status codes, resolution failures, and timeouts.

  3. Use a temporary clean browser profile for comparison, record the differences in extensions, sessions, and permissions, and don't rush to clear the original environment.

  4. Verify IPv4, IPv6, and proxy paths; if you switch to another network, use it only as comparative evidence and don't immediately conclude that the original IP is blocked.

  5. If necessary, supplement with DNS record lookup or HTTP and TLS check, and also record the test locations used by these tools to avoid confusing observation sources.

Switching networks changes the address, resolution path, and some network policies at the same time. "It works after switching" narrows down the problem, but cannot by itself point out which factor played a role.

For certificate errors, do not announce the problem solved by ignoring certificate warnings. Verify the system time, certificate chain, target domain, and authorized network configuration; for enterprise devices, have the administrator confirm the relevant policies.

What should you provide to support staff to get an effective response?

You can describe the problem as a reproducible record: at what time, on which network and browser, accessing which public path and performing what normal operation, what result was obtained; what the detection tool's target, method, and error were.

If there are request identifiers or response status codes, provide them as well. Provide the public IP only through a trusted support channel when troubleshooting genuinely requires it. Account passwords, cookies, Authorization request headers, and full URLs with access tokens should not be posted in public tickets or screenshots.

A useful conclusion should be specific enough, such as "the homepage opens, but cross-origin scripts cannot read the result," or "a certain request from the current egress is rate-limited." This is closer to a solution than "the network is bad," and more indicative of actual usability than an all-green detection page.

Two contrasting cases of layered failures: different failure points from DNS to TLS

Suppose the same domain resolves DNS successfully in one environment, but the TCP connection fails. Getting an A record or AAAA record only means that a record was returned at that time, not that the corresponding address is actually reachable. The failure may occur at the local firewall, carrier policy, target port closure, or a device in the path. If you directly assert that the IP is blocked at this point, you are skipping intermediate evidence. A more accurate statement is "the TCP port connection from the current network to the target address was not established."

Another illustrative case is HTTP returning 403 after the TLS handshake completes, indicating that the connection has entered application-layer processing, but you still need to check whether the client has certificate verification enabled. Only if verification is enabled and successful can you say that certificate trust and hostname checks passed; a test that skips verification has no such proof. 403 usually means the request was rejected, possibly involving path, identity, permissions, or security policy, and cannot alone prove account freezing.

The difference between these two cases is the failure layer. TCP failure occurs at the transport connection stage, while TLS passed but HTTP failure occurs at the application processing stage. Only by writing the layers clearly can you avoid confusing "connection unreachable" with "request rejected." For example, if a remote detection node shows TCP failure, it only means that the egress of that node cannot establish a connection, and cannot directly infer that your local machine also fails. And vice versa.

First preserve the original error: timeout means the corresponding stage was not completed within the specified time, and connection reset means the connection was actively terminated, but both may come from the target end, path devices, or client environment, and cannot be located to a firewall solely from the error wording. If an HTTP 403 has already been received, keep the request method, path, time, and request identifier, and ask the service provider to check the rules. Only by identifying the failure stage clearly can subsequent comparisons be targeted.

Layered judgment also affects subsequent actions. When TCP fails, switching networks, changing address family, or checking the proxy may be meaningful; for a 403 after TLS success, you should reduce ineffective retries and instead check the request method and path, or confirm whether a security policy was triggered. Using a single result to summarize the entire site or entire account status overestimates the scope of evidence.

Write a reproducible ticket record: time, target, observation point, and stage

An effective ticket is not a red error screenshot, but a record that can be reproduced from the observation point. It is recommended to include the occurrence time and time zone, the target URL accessed, the browser or client used, the device network type, and the location where the detection tool was executed. The observation point is especially important: is it the local browser, a remote detection node, or an active request from the server? Failures at different observation points have different meanings.

Also state the failure stage. If possible, distinguish between DNS, TCP, TLS, HTTP, and post-login functionality. The original error should be preserved as text or status code, such as connection timeout, request ID in the 403 page, or certificate error code. Sensitive information must be redacted: do not put passwords, cookies, Authorization headers, or full URLs with access tokens into the ticket. The public IP should only be provided through a trusted channel when truly necessary.

Do not claim "all regions are timing out" or "the entire country cannot access." You only know the observation points you tested. You can write "from the current network, TCP timeouts occurred three consecutive times since a certain time," which is more credible than "the whole network is down." Remote detection results can serve as circumstantial evidence, but you must note their actual test location and test time.

If you need to cite network evidence such as RDAP, ASN, or BGP, you can refer to the RDAP, ASN, BGP and RPKI: What IP Lookup Data Can Prove approach: first use RDAP to confirm address ownership, then use BGP or routing data to explain path changes. But ownership does not equal maliciousness, and ASN changes do not equal failure. Evidence should support conclusions, not create panic.

For troubleshooting involving IP blacklists or CAPTCHA phenomena, IP Blocklists and Repeated CAPTCHAs: Troubleshooting Guide provides more specific directions. In the ticket, indicate whether you encountered a CAPTCHA or an explicit rejection, and whether it is related to login status. A CAPTCHA may only be rate control or a risk-control prompt, not account freezing.

Finally, do not treat a single timeout threshold of some tool as a universal standard across the entire platform. Different detection products have different timeout, retry, and concurrency policies, and the threshold applies only to that tool's test at that time. Therefore, the ticket must clearly state the tool and configuration used. A reproducible record will allow support staff to locate the stage, rather than inferring the problem backwards from the conclusion.