{"record":{"id":"1f9e7420f5bb7f47","repo":"XTLS/Xray-core","slug":"vless-settings-unsupported-decryption-conf","errorCode":null,"errorMessage":"VLESS settings: unsupported \"decryption\": ` + config.Decryption","messagePattern":"VLESS settings: unsupported \"decryption\": ` \\+ config\\.Decryption","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"infra/conf/vless.go","lineNumber":154,"sourceCode":"\t\t\tif len(r) < 20 {\n\t\t\t\tpadding += len(r) + 1\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif b, _ := base64.RawURLEncoding.DecodeString(r); len(b) != 32 && len(b) != 64 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tconfig.Decryption = config.Decryption[27+len(s[2]):]\n\t\tif padding > 0 {\n\t\t\tconfig.Padding = config.Decryption[:padding-1]\n\t\t\tconfig.Decryption = config.Decryption[padding:]\n\t\t}\n\t\treturn true\n\t}() && config.Decryption != \"none\" {\n\t\tif config.Decryption == \"\" {\n\t\t\treturn nil, errors.New(`VLESS settings: please add/set \"decryption\":\"none\" to every settings`)\n\t\t}\n\t\treturn nil, errors.New(`VLESS settings: unsupported \"decryption\": ` + config.Decryption)\n\t}\n\n\tif config.Decryption != \"none\" && c.Fallbacks != nil {\n\t\treturn nil, errors.New(`VLESS settings: \"fallbacks\" can not be used together with \"decryption\"`)\n\t}\n\n\tfor _, fb := range c.Fallbacks {\n\t\tvar i uint16\n\t\tvar s string\n\t\tif err := json.Unmarshal(fb.Dest, &i); err == nil {\n\t\t\ts = strconv.Itoa(int(i))\n\t\t} else {\n\t\t\t_ = json.Unmarshal(fb.Dest, &s)\n\t\t}\n\t\tconfig.Fallbacks = append(config.Fallbacks, &inbound.Fallback{\n\t\t\tName: fb.Name,\n\t\t\tAlpn: fb.Alpn,\n\t\t\tPath: fb.Path,","sourceCodeStart":136,"sourceCodeEnd":172,"githubUrl":"https://github.com/XTLS/Xray-core/blob/7d214f8b094f75322fa3990f8aadad1c912f24f5/infra/conf/vless.go#L136-L172","documentation":"If a VLESS outbound sets \"decryption\" to something other than \"none\" (and not matching the special embedded seed/padding prefix format that the inline lambda strips), the value is unsupported and the build fails with the offending value echoed in the message. VLESS deliberately has no encryption/decryption at the protocol settings level.","triggerScenarios":"\"decryption\": \"auto\", \"decryption\": \"aes-128-gcm\", or any string other than \"none\" in VLESS outbound settings.","commonSituations":"Copy-pasting VMess-style security values into VLESS, or assuming decryption mirrors the outbound 'encryption' field of the client user.","solutions":["Set \"decryption\": \"none\" — the only supported plain value","Remove any VMess-style encryption settings from the VLESS outbound"],"exampleFix":"// before\n\"settings\": { \"decryption\": \"auto\", ... }\n// after\n\"settings\": { \"decryption\": \"none\", ... }","handlingStrategy":"validation","validationCode":"d := gjson.Get(outbound, \"settings.decryption\").String()\nif d != \"none\" {\n    return fmt.Errorf(\"vless decryption must be \\\"none\\\", got %q\", d)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never reuse VMess security values in VLESS settings","Treat \"none\" as the only valid decryption literal"],"tags":["config","vless","outbound","decryption"],"backgroundTag":null,"analyzedSha":"7d214f8b094f75322fa3990f8aadad1c912f24f5","analyzedAt":"2026-08-15T14:26:24.325Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}