Aug 21, 2026 · Protocols · About 8 minutes

Fix ChatGPT Not Working With Shadowrocket on iPhone

Shadowrocket says connected, but ChatGPT will not load? Check iPhone VPN status, routing rules, DNS, and node reliability with clear steps for both the app and website.

At a glance

This guide is for iPhone users who already have their own Shadowrocket configuration and find that ChatGPT will not load, even though Shadowrocket appears connected. Work through the iPhone VPN status, Global Routing, the active configuration and rules, DNS, and the selected server entry in that order. Test the ChatGPT app and website separately, change one item at a time, and keep a record of the original settings so you can restore them. A connected status confirms that a VPN tunnel is active; it does not guarantee that every destination or ChatGPT service endpoint is reachable.

1. Connected does not mean ChatGPT is reachable

Opening ChatGPT involves more than starting a VPN connection. The iPhone must have working network access, Shadowrocket must route the request as intended, the relevant domain must resolve, and the selected server must be able to establish a connection to the destination. The app or website must then return a response. A failure at any one of these stages can look like a blank screen, a spinner that never finishes, a sign-in loop, or an error message.

Check iPhone network Confirm VPN tunnel Match routing rule Resolve destination Load ChatGPT

Start by identifying exactly what fails. If the ChatGPT app opens but cannot sign in, note whether the website behaves the same way. If the website loads but the app does not, the issue may involve a different request, an app session, or an app-specific endpoint. If neither works, investigate shared routing, DNS, and connectivity before reinstalling or changing several settings.

2 tests
Compare the ChatGPT app with the website in Safari
443
Common HTTPS destination port; not proof that a request succeeded
1 change
Alter one setting at a time so the cause stays identifiable

On Home, check whether the connection switch is on and the status indicates an active connection. Also confirm that the intended server entry is selected. A selected entry alone does not mean the tunnel has connected, and an active tunnel does not show which route a particular ChatGPT request took. If iOS displays a VPN indicator, treat it as confirmation of the system tunnel state, not as a test of ChatGPT access.

Check the iPhone’s network as well. On Wi-Fi, confirm that the network has internet access and that any required sign-in page has been completed. If practical, test once on Wi-Fi and once on cellular, keeping the Shadowrocket settings unchanged. A failure on just one network points toward a network-specific restriction or DNS behavior; the same failure on both makes the active configuration, selected server, or destination handling more relevant.

2. Check Global Routing and the active configuration

Go to Home → Global Routing and note the current mode before changing it. Config applies the active configuration’s rules; Proxy and Direct are different routing choices. A rule edit will not help if the current mode is not using the rules you are editing. Likewise, temporarily selecting Proxy can help distinguish a rule-selection issue from a broader connection issue, but it is a diagnostic comparison rather than a permanent fix for every setup.

Uses the selected configuration’s routing rules. Check that the expected configuration is active and that ChatGPT-related requests are not matched by a rule sending them directly.

Best for: normal rule-based use and checking the rules you already maintain

Provides a temporary comparison by routing traffic through the proxy path instead of relying on individual configuration rules. The result still depends on a working selected server and does not prove that every destination is available.

Best for: a short test to isolate a possible routing-rule mismatch

Routes traffic directly. If the expected path uses your proxy configuration, this mode can explain why ChatGPT behaves differently from your expectation.

Best for: checking whether the current mode is inconsistent with your intended route

If you use Config, open Config and confirm which configuration is selected. Then inspect the rules that could match the domains requested by ChatGPT. A rule for a broad domain suffix, a keyword, or an IP range may affect more requests than its label suggests. Rules are evaluated according to their order, and an earlier matching rule can determine the policy before a later general rule is reached. Avoid adding guessed domains or copying a rule list from an unrelated configuration: the app, website, sign-in flow, and supporting services may not rely on just one hostname.

Use Home → Logs, when available in your current interface, to observe a fresh test rather than relying on an old entry. Open ChatGPT once, note the time, and inspect the new requests for the destination domain and selected policy. If a request is marked DIRECT when you expected the proxy path, check the matching rule and Global Routing mode. If it uses the expected policy but times out, the rule may be working while DNS, the network, or the selected server remains a problem.

ObservationWhat it suggestsNext check
Global Routing is DirectTraffic is not using the proxy route you expected.Record the original mode; compare briefly with the intended mode.
Config is selected and the request is DIRECTA matching rule may be assigning a direct policy.Check the request’s domain and the first applicable rule.
The request uses the expected policy but times outThe routing decision may be correct, while the destination connection still fails.Compare DNS, network, and the selected server entry.
No new request appears in the logThe test may not have generated a fresh request, or the failure may occur before the expected traffic is visible.Close and reopen the app or reload the page once, then check the timestamp.

Make one controlled comparison: note the current mode, switch temporarily to the appropriate test mode, retry the same ChatGPT action, and then restore the original mode. Do not change the routing mode, rules, DNS, and server entry together. If the result changes, you have a useful clue; if it does not, restore the setting and continue with the next check rather than leaving a diagnostic mode in place.

3. Test the app, website, and selected server step by step

Run a repeatable test so the result is comparable. Keep the iPhone on one network during the first pass, use the same ChatGPT account, and note the exact error or behavior. If you change networks for a second pass, leave the Shadowrocket configuration alone. This separates a network-dependent result from a configuration change.

  1. Record the baseline

    On Home, note the connection status, selected server entry, and Global Routing mode. Record whether you are using Wi-Fi or cellular and write down the time and exact ChatGPT error. Do not share private subscription URLs, credentials, or sensitive log details.

  2. Test Safari

    With the existing connection active, open the ChatGPT website in Safari and try one simple page load or sign-in action. Note whether the page fails to load, returns an error, or reaches the sign-in screen. Do not repeatedly submit credentials when the page is stuck.

  3. Test the app

    Open the ChatGPT app and repeat one simple action. Compare the result with Safari. If one works and the other does not, keep that difference in your notes; it narrows the investigation to app-specific requests, the app session, or browser-specific behavior.

  4. Compare routing

    Check Home → Global Routing and, if you use Config, verify the active configuration in Config. Make one temporary routing comparison, retry the same action, and restore the original selection before moving on.

  5. Compare networks

    If the first test was on Wi-Fi, make one test on cellular, or vice versa. Keep the same selected server and routing mode. If only one network fails, investigate that network’s access or DNS behavior before editing the configuration.

  6. Review fresh logs

    Make one new request and inspect the corresponding recent entries in Home → Logs. Look for the destination, policy, and whether the request completed, timed out, or failed during resolution. Restore any temporary diagnostic setting.

Now assess the selected server entry without assuming that a successful latency test guarantees ChatGPT access. A test may target a different host or use a different method from the app’s actual requests. If other destinations also fail or recent requests repeatedly time out, compare with another entry already included in your own configuration, if one is available to you. Change only the selected entry for this test, keep the routing mode and network unchanged, and return to the original entry afterward if the comparison does not help.

If only ChatGPT fails while unrelated destinations work, do not immediately replace the entire configuration. Inspect the exact destination and policy in fresh logs, check whether the same symptom occurs in Safari and the app, and consider whether the service or its sign-in flow is temporarily unavailable. A response such as an HTTP error is different from a DNS failure or connection timeout; record the message rather than treating all failures as “the proxy is disconnected.”

Conclusion: use the difference between the two tests

If Safari and the ChatGPT app fail in the same way, start with shared routing, DNS, the network, and the selected server. If one works and the other fails, preserve that distinction and inspect the failing client’s fresh requests before changing broad rules.

4. Check DNS and interpret the failure message

DNS translates a domain name into an address; routing decides how a request should connect. These are related but separate checks. Standard DNS commonly uses port 53, while encrypted DNS methods can use other transports and settings. Seeing port 53 in a log does not by itself identify every resolution step, and a successful lookup does not prove that the subsequent connection to the destination succeeded.

If the log or app points to a name-resolution problem, first check whether the same domain resolves and loads under the same network conditions when the routing mode is temporarily compared. Review the DNS settings already present in your active configuration or app settings, and record their original values. Change only a setting you understand, then repeat the same test. Avoid replacing all DNS values with an unverified address or changing DNS and routing at once; doing so makes it difficult to identify what improved or made the result worse.

Also distinguish the address-bar domain from the full URL. A rule usually matches a domain, not a path such as /login or /chat. If the first page opens but sign-in, images, or another feature fails, the failing request may use a different domain. Check the corresponding fresh log entry before editing rules. Do not infer a complete list of required domains from one failed page or add broad keyword rules that could unintentionally route unrelated traffic.

Error: “Could not connect” or a request times out

Cause and next step: The request did not complete, but the message alone does not identify whether the cause is the network, selected server, route, or destination. Compare Wi-Fi with cellular while keeping the configuration unchanged, then inspect the fresh log for the destination and policy.

Error: “Server not found” or a name-resolution failure

Cause and next step: The hostname may not have resolved on that request. Check the exact domain and the DNS-related log details, review the existing DNS settings, and change one documented value only if you know what it does.

Error: the page loads, but sign-in keeps returning to the same screen

Cause and next step: A sign-in flow can involve requests beyond the first page. Compare the app with Safari and inspect fresh requests around one sign-in attempt; do not repeatedly submit credentials or assume that a successful home-page load proves the whole flow works.

Error: an HTTP error appears instead of a timeout

Cause and next step: An HTTP response means a server or intermediary returned an error response; it is not the same diagnosis as a missing DNS answer. Record the status and the page or action that produced it, then check whether it reproduces in both the app and Safari.

If ChatGPT works on one network but not another, the difference is useful evidence. Check whether the failing network requires a sign-in, has limited access, or behaves differently for DNS. If the same destination fails on both networks and the logs show the expected policy, a temporary service-side issue or a problem with the selected server may be more plausible than a single incorrect rule. Retest later before making a broad configuration change.

5. Frequently asked questions

Shadowrocket says connected. Why does ChatGPT still spin?

An active tunnel confirms the connection state, not that ChatGPT’s requests succeeded. Check Home → Global Routing, test the app and website separately, and inspect fresh Home → Logs entries for the destination, policy, and timeout or resolution result.

Should I switch Global Routing to Proxy?

Use Proxy only as a temporary comparison if you normally use Config and want to check for a rule mismatch. Record the original mode, repeat one test, and restore the original selection. A different result suggests that routing deserves closer inspection; it does not establish a universal permanent setting.

The website works, but the ChatGPT app does not. What should I check?

Keep the difference as a clue. Test one action in each, then inspect recent logs around the app attempt. Check whether the app’s requests use a different destination or match a different rule. Avoid adding guessed domains or changing broad rules without evidence.

Should I change DNS whenever a page fails?

No. First establish whether the error indicates name resolution, a timeout, or an HTTP response. Review the DNS settings already in use, note their original values, and change one item only when the failure points to DNS. Retest the same request before keeping the change.

For a clean final check, restore your normal Global Routing mode and selected server entry, confirm that the intended configuration is active, and retry one consistent ChatGPT action. If the issue remains, keep the network type, exact error, app-versus-Safari result, relevant recent log entries, and each setting you tested. That record is more useful for further diagnosis than repeatedly toggling the VPN or making several untracked changes.

Download Shadowrocket from the App Store