v2rayA/v2rayA · error
%v: file is not found
Error message
%v: file is not found
What it means
Returned while parsing RoutingA domain rules: the dat file named in an ext:<file>:<tag> parameter (e.g. ext:geosite.dat:cn) does not exist in the configured v2ray asset directory (asset.DoesV2rayAssetExist false), so the rule cannot be compiled.
Source
Thrown at service/kernel/v2ray/template_routing.go:318
OutboundTag: rule.Out,
InboundTag: routingInboundTags,
}).(coreObj.RoutingRule)
for _, f := range rule.And {
switch f.Name {
case "domain", "domains":
for k, vv := range f.NamedParams {
for _, v := range vv {
if k == "contains" {
rr.Domain = append(rr.Domain, v)
continue
}
if k == "ext" {
datFilenameAndTag := strings.SplitN(v, ":", 2)
if len(datFilenameAndTag) < 2 {
return fmt.Errorf("%v: tag is not given", v)
}
if !asset.DoesV2rayAssetExist(datFilenameAndTag[0]) {
return fmt.Errorf("%v: file is not found", datFilenameAndTag[0])
}
}
rr.Domain = append(rr.Domain, fmt.Sprintf("%v:%v", k, v))
}
}
// unnamed param is not recommended
rr.Domain = append(rr.Domain, f.Params...)
case "ip":
for k, vv := range f.NamedParams {
for _, v := range vv {
if k == "ext" {
datFilenameAndTag := strings.SplitN(v, ":", 2)
if len(datFilenameAndTag) < 2 {
return fmt.Errorf("%v: tag is not given", v)
}
if !asset.DoesV2rayAssetExist(datFilenameAndTag[0]) {
return fmt.Errorf("%v: file is not found", datFilenameAndTag[0])
}View on GitHub (pinned to 71e5442fc5)
Solutions
- Download the missing .dat file (e.g. via geo update)
- Fix the filename in the ext rule
- Place the file in the assets directory
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at service/kernel/v2ray/template_routing.go:318 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of v2rayA/v2rayA@71e5442fc5 (2026-09-05).
Data as JSON: /api/errors/58303e55d24266a9.
Report an issue: GitHub.