On this page
Before importing, confirm that the link returns a Clash or Mihomo configuration
Clash cannot import an arbitrary web address; it needs a Clash- or Mihomo-compatible subscription from the provider. When the client accesses the link, the server may return YAML with proxies, proxy-groups, and rules, or it may return encoded text, a sign-in page, or an error page. The response content determines whether parsing succeeds.
After pasting the link into the client, “added successfully” means only that the address was saved. It does not prove that the configuration downloaded or that its nodes work.
The token in a subscription address usually acts as a read credential. Troubleshooting requires only error status, response type, and time, not the complete URL. Hide everything after the question mark before sharing chat screenshots, recordings, or logs.
401, HTML pages, and YAML indicate three different problems
How to read update results
| Observed result | Meaning and response |
|---|---|
| 401 / 403 | The token is invalid, the account status is abnormal, or the server denied access |
| 404 | The address path changed or the link was copied incompletely |
| 200, but the content begins with <html | The response is a sign-in, verification, or error page—not a configuration |
| 200, with proxies / proxy-groups / rules | It appears to be Clash/Mihomo YAML and can proceed to parsing |
| download failed / timeout | The client did not receive a response before the deadline; inspect the network and server |
Some subscription services return different formats based on User-Agent. A browser displaying a string does not guarantee that a Clash request receives the same content; conversely, a web page in the browser does not necessarily mean the link is invalid. Give the provider the client version, update time, and status code instead of repeatedly deleting the configuration.
Save, update, and enable it in one operation
One complete remote import
Copy the provider's link labeled for Clash or Mihomo
Copy everything from the opening https through the last parameter, without extra spaces.
Add the remote subscription on the Profiles or configuration screen
Use a name that identifies the source, and do not put the token in the name.
Click update immediately
Watch the status code, parsing message, and new update time.
Set this configuration as current
Open Proxies and confirm that policy groups and nodes appear.
If the client offers direct link, configuration link, URL Scheme, and other entry points, start with an ordinary remote link. If one method reports client error(Connect), try another import entry documented by the client, but do not leave “allow invalid certificates” enabled.
parse error means the content arrived but failed format validation
Errors such as parse, yaml: unmarshal, or field not found mean the network request probably completed and the client failed while reading the content. Common causes include a server response formatted for another client, damaged YAML indentation, or fields unsupported by the current core.
Switching nodes usually does not help here. Preserve the first specific error line and line number, verify the client's Mihomo version, and ask the subscription provider for a compatible format. Do not manually repair dozens of fields in a remote configuration; the next update will overwrite every change.
unexpected character '<'
The response is probably an HTML page; inspect sign-in, verification, or server errors.
mapping values are not allowed
YAML indentation or syntax is damaged; ask the provider to regenerate it.
unsupported proxy type / field not found
The core version and configuration fields do not match; upgrade to a supported version or use a compatible subscription.
If the update time changes but the proxy screen is empty, check whether the configuration contains usable groups
If a remote update succeeds but the Proxies screen has no nodes, the response may contain only rules, every node may have been filtered out, or the selected configuration may still be the old one. Return to Profiles and check the selection marker, then confirm that the configuration contains proxies or proxy-providers and that proxy-groups references them.
Nodes can exist yet all sit in an unused group, leaving the primary policy on DIRECT. Choose a policy group that actually contains nodes and pin one, then observe a request in Connections. This reveals more about whether the configuration works than the latency button alone.
Compare each item when the list is empty
- Is the current configuration the one that just updated?
- Does the configuration declare proxies or proxy-providers?
- Does proxy-groups correctly reference nodes or a provider?
- Did an override script filter out every node?
Existing internet access does not prove today's subscription update succeeded
Clash normally continues using the last successfully downloaded local copy. Existing nodes may therefore keep working temporarily after a subscription expires or the server begins returning an error. Judge update status by the “last updated” time and the current error, not simply whether web pages open.
Do not rush to delete a working old configuration. Export the error, verify the account and link status, and remove the old entry only after the new address updates successfully. Deleting the sole working copy turns a diagnosable issue into an immediate outage.
- Old nodes work, but the new update returns 401
- The server rejected the current credential; sign in to the service panel and inspect the subscription address.
- The update times out on the home network but succeeds on a mobile hotspot
- The problem is closer to the current network path than the YAML format.
- Several clients fail at the same time
- Check service notices and subscription status first; do not reinstall every device.
Finish the import workflow with one real request
Select the new Profile, pin one node in Proxies, keep Rule mode, and enable the system proxy. When visiting a familiar page, Connections should show the target domain, matched rule, and outbound route. A latency test proves only that the probe address responded; it does not replace a real request.
If a request enters Clash and shows timeout, try another node. If no record appears, inspect the system proxy. If it shows DIRECT, inspect the rule. Only when the page opens and the record matches the selection has the subscription completed downloading, parsing, activation, and forwarding.
Deleting the chat message is not enough after sharing the raw link
Once a complete subscription appears in a public screenshot, group chat, support ticket, or unfamiliar conversion site, reset the subscription address in the service panel. After the new token works, replace the link in your clients and update. The old address should return an invalid status. Renaming the Profile does not invalidate the old credential.
Post-exposure cleanup
Generate a new subscription address
Use the provider's reset or token refresh feature.
Update controlled devices
Replace the old URL on each device and confirm the new update time and node list.
Verify that the old address is invalid
Do not keep sending the old link in chat; check only the status shown by the service panel.
Inspect unusual usage
If you find unfamiliar devices or traffic changes, follow the provider's account-security process.
