-
Notifications
You must be signed in to change notification settings - Fork 4
Troubleshooting
What error messages mean and what to do. Some messages carry a stable code like [E-20] — that code is the fastest thing to tell your provider's support.
| Code | Message says | What actually happened | What to do |
|---|---|---|---|
| E-10 | server returned an empty response | The panel answered, but with nothing in it | Try again later; if it persists, contact your provider |
| E-11 | server returned a web page, not a config | You got an HTML error / rate-limit page instead of YAML | Wait a minute and retry; check the link is the subscription URL, not the dashboard page |
| E-20 | couldn't reach the subscription server | DNS/TLS/connect failed — network problem or the host is blocked | Check your connection; try another network; the panel's domain may be blocked in your region |
| E-30 | subscription is age-encrypted, key missing or wrong | The body is encrypted and the app has no (or a wrong) decryption key | Import the full link from your dashboard (it carries the key after #), or set Profile properties → Age secret key. See Encrypted Subscriptions
|
The most common cause: the subscription pulls its rule lists through a proxy (proxy: field in rule-providers) and that proxy node is down or unreachable. The app connects, but the rules stay empty and traffic goes nowhere.
- Open Logs and look for lines like
initial rule provider … errorordial … i/o timeout— the address in thedialline tells you which node couldn't be reached. - Pick a different node / check with your provider that the server is up, then reconnect.
Same family as above: a rule source couldn't be downloaded in time (blocked host or a dead node in the middle). The subscription itself downloaded fine. Reconnect once the node is reachable — rule sources also retry in the background.
The subscription's YAML is genuinely invalid (the message quotes the exact reason, e.g. proxy 'X' not found). This is a problem in the config your panel serves — forward the message to your provider.
Usage numbers come from the same download as the config. Pull-to-refresh the profile; if the panel doesn't send subscription-userinfo, the previous numbers are kept rather than zeroed.
Logs (in the app) shows the engine's own messages. When reporting a problem, a screenshot of the seconds around connect/import is worth more than any description:
-
[TCP] dial <group> … error: <ip>:<port> … i/o timeout— the node<ip>is unreachable -
initial rule provider <name> error— a rule list failed to download -
decrypt config error/[E-30]— encryption key missing or wrong
📱 User Guide
- Getting Started
- Profiles & Nodes
- Routing & Rules
- Settings
- Deep Links
- Encrypted Subscriptions
- Troubleshooting
🏢 Operator API
📺 Companion