Why ChatGPT Can Fail While Other Websites Still Work

Opening ChatGPT through Clash is not a single network event. A normal page load may involve DNS resolution, authentication endpoints, static assets, API requests, long-lived streaming connections, and sometimes WebSocket-like behavior. If only one of those stages takes a wrong route, the browser may show a blank conversation, an endless spinner, “Network Error,” or a timeout even though ordinary websites open normally.

The first mistake is to treat every failure as proof that a subscription or node has expired. A healthy node can still be unsuitable for ChatGPT if its route is congested, its exit address is rejected by the service, or its DNS answer sends the browser toward an unreachable edge. The opposite is also possible: a node may pass a quick latency test while long streaming responses stall after thirty or sixty seconds. In other words, low ping is not the same as a reliable ChatGPT session.

Clash adds another layer of decisions. A browser can inherit the system proxy, an extension can use a separate SOCKS listener, and a TUN-enabled client can capture traffic before the application’s own proxy settings are considered. Meanwhile, rule providers may classify the main domain, authentication domain, content-delivery domain, and API hostname differently. The result is a split session in which the login page works but the conversation request fails, or the interface renders while its scripts remain stuck.

This guide focuses on diagnosis rather than blindly changing providers. The goal is to identify whether the problem comes from proxy mode, node health, routing rules, DNS behavior, TUN capture, or the application itself. Use these checks only on accounts and networks where proxied access is permitted by local law, workplace policy, school rules, and the service’s terms.

Useful principle: Change one variable at a time. If you replace the subscription, switch mode, enable TUN, and edit DNS together, you may restore access without learning which layer actually failed.

Build a Clean Baseline Before Editing YAML

Start by recording the exact symptom and the time it appears. Does ChatGPT fail before the login form, immediately after signing in, when a new conversation is sent, or only while an answer is streaming? These details separate DNS and static-resource failures from API routing and long-connection failures. Also test a private browser window with extensions disabled. Ad blockers, privacy filters, corporate endpoint agents, and stale service workers can all produce errors that look like Clash failures.

Next, confirm that the Clash client itself is running the profile you think it is. Check the active profile name, the selected mode, the current proxy group, and the core version. In a Mihomo-based client, the visible interface may remember a group choice while a profile update has replaced the group definition. A subscription can also refresh successfully but leave an invalid rule-provider URL, an empty proxy group, or a policy name that no longer exists.

Open Clash’s connection or traffic log while loading ChatGPT. You are looking for three useful facts: whether requests appear at all, which hostnames are contacted, and which policy handles them. If no relevant traffic appears, the browser probably bypasses Clash, the system proxy is disabled, or TUN capture is not active. If requests appear with DIRECT when you expected a proxy group, the rule chain is the immediate suspect. If requests use a proxy but repeatedly fail on one node, move to node testing instead of rewriting every rule.

Before making changes, close other VPN clients and disable competing proxy extensions. A stale PAC file, a second Clash process, or an Always-On enterprise tunnel can win the routing race before the request reaches your intended listener. On desktop systems, inspect the operating system’s HTTP and HTTPS proxy values and compare their port with Clash’s mixed-port or HTTP listener. Do not assume that a green “system proxy enabled” indicator proves the browser is using the same path.

Compare DIRECT, system proxy, and tunnel behavior

Use the same browser and the same ChatGPT page for each controlled test. First disable Clash routing or use a permitted direct connection. Then restore the system proxy with a known-good group. Finally, if your client supports it, test TUN mode separately. A direct failure establishes that the local network or upstream service may be involved; a proxy-only failure points toward node, rule, or DNS behavior; a TUN-only failure suggests interception, virtual-adapter, or DNS-capture problems.

Test result Most likely area Next check
DIRECT fails and proxy fails Local network, browser, service, or account session Test another permitted network and inspect browser errors
DIRECT works but proxy fails Node, rule, DNS, or proxy transport Review connections and test several nodes
System proxy works but TUN fails Virtual adapter, DNS hijacking, or exclusions Check TUN stack, auto-route, and DNS settings
Page loads but messages time out API route, streaming stability, or idle timeout Inspect the request policy and try a stable node

Test Node Connectivity and Inspect Rule Decisions

Do not judge a node solely by the latency number displayed in the Clash interface. Probe URLs are usually short requests to a fixed endpoint; ChatGPT may require a different geography, TLS path, and connection duration. Select three or four nodes from distinct regions or providers and test them one at a time. After selecting each node, clear the browser tab, reopen the site, and send a short harmless message. Keep notes about login, page loading, first response, and streaming completion rather than choosing the smallest millisecond value.

The connection log should reveal whether the relevant hostnames share a policy group. Exact names vary as services evolve, so avoid copying a random domain list from an old forum post. Instead, observe the domains generated during your own test, then verify how your rules classify them. Look for broad rules that accidentally send AI service traffic to DIRECT, a reject policy, or a group containing dead nodes. Also check whether a generic country rule appears before a more specific domain rule. Clash evaluates rules from top to bottom, so a correct-looking rule may never be reached.

A common troubleshooting mistake is to add a huge catch-all proxy rule immediately. That can hide the original problem and send unrelated traffic through a slow or unsuitable route. Prefer a narrow temporary test rule, place it above broad geolocation and MATCH rules, and remove it after confirming the diagnosis. If the temporary rule fixes ChatGPT, convert the finding into a clean permanent rule structure rather than leaving several overlapping exceptions in the profile.

Read the policy, not just the error: “Timeout” is an application symptom. The decisive evidence is often in Clash’s log: the hostname, selected rule, selected group, node name, and whether the connection was closed locally or remotely.

Rule providers deserve special attention. A provider update can change domain classifications without changing your main YAML file. If the problem began after a scheduled update, compare the provider version or temporarily use a trusted local copy for testing. Do not disable every provider permanently; use the temporary comparison to identify ordering or content changes, then restore automatic updates after correcting the specific conflict.

Adjust DNS and TUN Settings Carefully

DNS problems often look like proxy problems because the browser never reaches the intended hostname. In fake-IP mode, Clash returns synthetic addresses and maps them back to domain names internally. That can work well when the client controls all relevant traffic, but it can become confusing when applications bypass the Clash resolver, when a DNS leak exposes a different answer, or when an exclusion list causes one hostname to resolve outside the tunnel. Reducing complexity temporarily is more useful than changing ten resolver addresses at once.

For a controlled DNS test, note the current mode, resolver list, fake-IP filter, and fallback behavior. Then use the client’s documented DNS implementation with a small, stable configuration. Confirm that the DNS requests appear in the Clash log and that the returned result is consistent across repeated tests. If a domain is incorrectly treated as a literal IP, inspect fake-IP filters and enhanced-mode settings. If only some assets fail, check whether the browser resolved them before Clash started or retained an old answer in its own cache.

TUN mode should be treated as a separate transport layer, not as a universal repair button. Enable it only after ordinary system-proxy testing is understood. Confirm that the virtual adapter starts without an error, auto-route is enabled when appropriate, and the client has permission to create or manage the adapter. On Windows, inspect whether another VPN driver installed a competing route. On macOS, check Network Extension approval and system filter entries. On Linux, review route tables and firewall rules rather than assuming the interface name is enough.

Do not stack tunnel layers casually: Running TUN, another VPN, a browser proxy extension, and a system PAC file simultaneously makes packet ownership difficult to determine. Return to one path, verify it, and add layers only when a specific application requirement justifies them.

A practical five-pass troubleshooting sequence

  1. Capture the baseline. Record the active Clash profile, mode, listener port, selected group, core version, browser, and the exact timeout stage. Save a short connection-log excerpt without exposing subscription tokens or account credentials.
  2. Verify application ownership. Disable browser extensions and competing VPNs, confirm the system proxy port, and check whether ChatGPT requests appear in Clash. If the log is empty, fix proxy inheritance before touching rules.
  3. Compare several nodes. Use a selector group and test nodes individually. Judge completed page loads and message streams, not only latency probes. If one provider works consistently while others fail, keep the working result as evidence rather than changing DNS first.
  4. Inspect rule matches. Identify the actual hostnames in the log and verify their policies. Move a narrow temporary rule above broad matches, retest, and then simplify the final rule set. Remove duplicate or obsolete exceptions.
  5. Test DNS and TUN last. Change one DNS or TUN option, restart the core, flush the browser’s DNS state if necessary, and repeat the same test. Revert immediately when a change makes the logs less clear.

After each pass, write down what changed and what did not. For example, “the login page became faster, but message streaming still timed out” suggests that authentication and API traffic are not sharing the same route. “The browser works in system-proxy mode but fails in TUN mode” narrows the investigation to adapter capture, DNS interception, or route exclusions. This small discipline prevents circular troubleshooting, where the same failed combination is repeatedly tested under a different label.

When a Subscription Change Is Actually Justified

Replace or contact the subscription provider only after local configuration has been tested. A subscription becomes a reasonable suspect when every node fails in the same way, the profile contains expired credentials or empty proxies, refresh requests return errors, or the provider confirms an outage. It is less reasonable to switch subscriptions because one node timed out during a single congested test. Providers can also differ in transport support, node geography, bandwidth policy, and tolerance for long-lived connections, so a new list is not automatically a better list.

Before importing a replacement, export or copy your current profile and remove sensitive URLs from screenshots. Verify the source over HTTPS and inspect the downloaded configuration for expected groups, listeners, DNS sections, and rule providers. Import it into a separate profile when the client allows that, then reproduce the same baseline tests. If the new profile works, compare the two profiles structurally: node availability, group membership, rule order, DNS mode, and TUN defaults. This produces a durable fix instead of leaving you dependent on an unexplained replacement.

Also distinguish service-side incidents from local failures. If the Clash log shows successful TLS connections and completed responses while the browser still reports an error, inspect browser developer tools, cookies, service workers, and endpoint status information. If all requests reset at the proxy or node boundary, continue with transport and routing tests. Clear evidence helps a provider respond meaningfully; “ChatGPT does not work” is far less useful than a timestamped report showing the node, policy, hostname, and failure stage.

Compared with browser-only proxy extensions, Clash provides a clearer connection log, reusable policy groups, DNS controls, and optional TUN capture, so you can locate whether a ChatGPT timeout begins at the application, rule, resolver, or transport layer. Some lightweight VPN clients hide those decisions behind one switch, while older desktop clients may lack reliable rule visibility or modern TUN handling. Once you have confirmed a permitted route and a stable node, Clash V.CORE gives you a maintained place to review those choices and reproduce the fix across devices; you can download Clash V.CORE and apply the same measured troubleshooting process.

// Editor's Pick

Clash V.CORE for clearer ChatGPT troubleshooting

Keep proxy mode, node selection, DNS behavior, and routing decisions visible while you isolate connection timeouts.

  • Readable connection logs for failed requests
  • Flexible groups for node-by-node testing
  • Rule ordering you can inspect and refine
  • DNS modes for controlled resolver comparisons
  • Optional TUN capture for system-wide traffic
Get Clash V.CORE →