XX-net/XX-Net · warning

load %s for host failed:%r

Error message

load %s for host failed:%r

What it means

ip_manager failed to load a domain-list file (by host variant); it tries multiple filenames and warns per failure. If all fail, domain_map starts empty.

Source

Thrown at code/default/x_tunnel/local/cloudflare_front/ip_manager.py:43

    def load_domains(self):
        domain_map = {}  # top_domain -> {}
        for fn in [self.domain_fn, self.default_domain_fn]:
            if not os.path.isfile(fn):
                continue

            try:
                with open(fn, "r") as fd:
                    ds = json.load(fd)
                    for top in ds:
                        domain_map[str(top)] = {
                            "links": 0,
                            "fail_times": 0,
                            "last_try": 0.0
                        }
                self.logger.info("load %s success", fn)
                break
            except Exception as e:
                self.logger.warn("load %s for host failed:%r", fn, e)
        return domain_map

    def save_domains(self, domains):
        ns = []
        for top_domain, _ in self.domain_map.items():
            ns.append(top_domain)

        if ns == domains:
            self.logger.debug("save domains not changed, ignore")
            return
        else:
            self.logger.info("save domains:%s", domains)

        dat = {}
        for domain in domains:
            dat[domain] = ["www." + domain]

        with open(self.domain_fn, "w") as fd:

View on GitHub (pinned to cfa5bc17b6)

Solutions

  1. Delete/regenerate the corrupted ip_manager domain file so it is rebuilt
  2. Check file JSON syntax with a validator
  3. Upgrade both code and saved files together
Defensive patterns

Strategy: try-catch

Validate before calling

import json
json.loads(open(fn).read())  # validate before letting ip_manager load it

Try / catch

try:
    ip_manager.load_domains()
except Exception:
    delete_state_file_and_restart()

Prevention

When it happens

Trigger: __init__/save_domains iterate candidate filenames; JSON parse error, missing keys, or IOError triggers the warn and moves to the next file.

Common situations: Corrupted or manually edited domain list file; first run with no saved file; schema change between versions.

Related errors


AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27). Data as JSON: /api/errors/4fd71a24a5132790. Report an issue: GitHub.