chore(log): downgrade "no backend name" domain-skip from WARNING to INFO
HAProxy Manager Build and Push / Build-and-Push (push) Successful in 2m12s

generate_config emits "Skipping domain <host> - no backend name" on every run
for domains registered without a proxy backend — most commonly the panel's own
hostname (whpNN.cloud-hosting.io), which lives in the DB only for certificate
management and intentionally has no backend. Logging it at WARNING tripped the
WHP AI log monitor as a recurring error and prompted a bogus "restart
haproxy-manager" remediation. It's expected, benign, and recurs by design.

Log it at INFO instead (consistent with the sibling per-domain "Added ACL for
domain" INFO lines) with a clearer message ("no proxy backend
(cert/management-only)"). Verified against the WHP monitor's ErrorClassifier:
the old WARNING line classified as non_critical (captured); the new INFO line
classifies as None (skipped) — so it no longer shows up in reports, while
remaining visible in container logs for manual routing debugging.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-02 05:50:22 -07:00
parent 89c74c10cf
commit 7732e2a2ff
2 changed files with 8 additions and 3 deletions
+1 -1
View File
@@ -1 +1 @@
2026.07.1
2026.07.2
+7 -2
View File
@@ -1855,7 +1855,11 @@ def generate_config():
# First pass: exact domain ACLs (higher priority - evaluated first)
for domain in exact_domains:
if not domain['backend_name']:
logger.warning(f"Skipping domain {domain['domain']} - no backend name")
# Expected for domains registered without a proxy backend (e.g. the
# panel's own hostname, present only for certificate management).
# Log at INFO — not WARNING — so it doesn't trip log monitors as an
# error; it recurs on every generate_config by design.
logger.info(f"Skipping domain {domain['domain']} - no proxy backend (cert/management-only)")
continue
try:
@@ -1874,7 +1878,8 @@ def generate_config():
# Second pass: wildcard domain ACLs (lower priority - evaluated after exact matches)
for domain in wildcard_domains:
if not domain['backend_name']:
logger.warning(f"Skipping wildcard domain {domain['domain']} - no backend name")
# See note above — INFO, not WARNING; expected for cert/management-only domains.
logger.info(f"Skipping wildcard domain {domain['domain']} - no proxy backend (cert/management-only)")
continue
try: