From d34e95eba7d9ba36866e9d24ff90f97c5c8e3921 Mon Sep 17 00:00:00 2001 From: HamidReza Date: Thu, 19 Mar 2026 00:17:30 +0330 Subject: [PATCH] fix: Log the errors in the resolveXrayAPIPort function --- web/job/check_client_ip_job.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/web/job/check_client_ip_job.go b/web/job/check_client_ip_job.go index d55050a0..9ef242e1 100644 --- a/web/job/check_client_ip_job.go +++ b/web/job/check_client_ip_job.go @@ -456,17 +456,33 @@ func (j *CheckClientIpJob) disconnectClientTemporarily(inbound *model.Inbound, c // resolveXrayAPIPort returns the API inbound port from running config, then template config, then default. func (j *CheckClientIpJob) resolveXrayAPIPort() int { + var configErr error + var templateErr error + if port, err := getAPIPortFromConfigPath(xray.GetConfigPath()); err == nil { return port - } + } else { + configErr = err + } db := database.GetDB() var template model.Setting if err := db.Where("key = ?", "xrayTemplateConfig").First(&template).Error; err == nil { if port, parseErr := getAPIPortFromConfigData([]byte(template.Value)); parseErr == nil { return port - } - } + } else { + templateErr = parseErr + } + } else { + templateErr = err + } + + logger.Warningf( + "[LIMIT_IP] Could not determine Xray API port from config or template; falling back to default port %d (config error: %v, template error: %v)", + defaultXrayAPIPort, + configErr, + templateErr, + ) return defaultXrayAPIPort }