EN

Hiddify does not connect: profile, server, DNS, or blocking

· · The Ateo Digital editorial team

Hiddify usually fails to connect for one of four reasons: the profile (subscription URL) does not update, the server behind the profile is dead, DNS to the entry point does not resolve, or TSPU filtering blocks a specific protocol. The client itself breaks very rarely — it is only an interface to the sing-box core, and the core is stable.

These causes have different symptoms, and those symptoms let you understand fairly quickly where to look. Below is a diagnostic algorithm and a “symptom → cause → what to check” table.

If you have “Hiddify hangs on Connecting”, “it connects, but there is no internet”, or “it worked yesterday, not today” — these are all different cases, and trying to fix them with one method is useless.

In short

  • First check whether the profile updates: Profiles → Update. If there is an error, the subscription URL is dead.
  • If the profile updates, but there is no connection, switch the node inside the profile.
  • If no node works on one operator, but they work on another, the protocol is being blocked by DPI.
  • “Connected, but no internet” is almost always DNS or TUN mode not being active.
  • Restart TUN: sometimes the system VPN profile hangs after sleep mode.
  • On recent iOS / Android versions, deleting and recreating the VPN profile in system settings helps.

The four main causes and how to tell them apart

1. Dead or expired subscription URL

A subscription URL is an HTTPS address from which Hiddify pulls configs. If the subscription host is down, the provider’s payment has expired, or the link is not valid, the client will not get a fresh server list. In the UI, this shows up as a profile update error or an old “Last updated” date.

2. The server is unavailable or overloaded

The subscription may be fresh, but a specific VPS may be dead. The sign: the profile updates without errors, there are several nodes, but the specific “best” one does not respond to ping. The solution is to switch the node manually or enable automatic latency testing.

3. DNS does not resolve

By default, Hiddify uses its own DNS set. If it does not work for some reason (a firewall blocks DoH, the provider blocks 1.1.1.1), the client establishes the tunnel, but site names do not resolve. The sign: pings by IP work, but pings by DNS name do not.

4. DPI blocks the protocol

The most common “it worked yesterday, not today” scenario. TSPU rules were updated, and the signature of your protocol started being blocked. Bare VLESS/VMess without REALITY, ordinary WireGuard, and Shadowsocks without 2022 ciphers are most often affected.

Symptom → cause → what to check

SymptomPossible causeWhat to check
The profile does not update, “failed to fetch” errorThe subscription URL host is unavailableOpen the subscription link in a browser; ask the provider to update it
Connecting spins foreverThe server is dead or the port is blocked by the operatorSwitch the node, check with a second operator
Connected, but sites do not openDNS does not resolve or TUN mode is disabledEnable Override DNS / Tun mode in settings
It works, but drops after 10–20 secondsDPI recognized the signature and blocks the dataChange the protocol / node to one with REALITY masking
Works on Wi-Fi, does not work on LTEThe operator blocks a specific protocol / portCheck blocking on other operators
All nodes are marked “timeout”The profile is fresh, but the provider’s servers went downContact the provider, try a backup subscription

How to check right now

If you went through the symptom table and are not sure what is wrong, there are three quick steps. First, update the profile manually (Profiles → Update). Second, inside the profile, run URL Test (latency test): it will show which nodes respond at all. Third, try from another network: home Wi-Fi and LTE together make it clear whether filtering is to blame.

If none of this helped, it is useful to compare against service status: the problem may not be on your side, but a mass protocol block. A comparison by operators/regions through Freedom Checker will show the picture immediately. Useful links for deeper diagnostics are the Troubleshooting section in the official Hiddify Manager documentation and the issues thread on GitHub Hiddify-App.

Check availability through Freedom Checker

Failure or blocking?

A failure is a problem with one link in the chain: your VPS went down, the provider updated the config and broke the subscription, or a client update broke some feature. The sign: the problem is local, and a neighbor on the same subscription has it working.

Blocking is different. Symptoms appear widely among users of one operator, do not disappear after an hour or two, and switching the node inside the profile does not help. If none of the tested nodes work on this network, but everything is OK through another network, then it is not the client and not the server — it is the TSPU.

What to pay attention to

  • Delete and re-import the profile — sometimes the cache is simply stuck.
  • On iOS, go to Settings → VPN and delete old configurations — Hiddify will create a new one on the next connection.
  • Check whether TUN mode is enabled (not the “system VPN” in Hiddify by default).
  • Enable Override System DNS — it is a common cause of “Connected, but no internet”.
  • Compare the result on two different networks — this is the cheapest DPI diagnostic.
  • Do not try to fix a provider problem by changing the client: NekoBox/v2rayNG/sing-box on the same profile will give the same result.
  • If nothing helps, ask the provider: “is my server alive right now?”

Conclusion

Hiddify almost never fails “by itself” — it is only an interface to sing-box. “Does not connect” is a signal that one link in the chain has broken: the subscription, the server, DNS, or the network path to the server. The fix algorithm is the same: go through these links from top to bottom, starting with updating the profile.

If, after all checks, the problem reproduces on one network and disappears on another, it can no longer be fixed in the client: look for a masked protocol or set up your own node.

Check now