-
-
Notifications
You must be signed in to change notification settings - Fork 7.4k
Description
📑 I have found these related issues/pull requests
- Domain expiry monitor logs messages twice on every check #6633 - Domain expiry monitor logs messages twice on every check
- Don't domain expiry warn on
.localand similar domains #6682 - Don't domain expiry warn on .local and similar domains - fix(domain-expiry): move logging out of checkSupport to separate logic to reduce to half the amount of domain expiry logs #6723 - fix: move logging out of checkSupport to reduce domain expiry logs
These addressed editor keystroke spam and private/local domains, but the runtime behavior for unsupported public TLDs (like .co) is still problematic.
🛡️ Security Policy
- I have read and agree to Uptime Kuma's Security Policy.
📝 Description
When a monitor targets a domain with a TLD that has no RDAP endpoint listed by IANA (e.g. .co), the "Domain Name Expiry Notification" checkbox in the monitor editor is grayed out but still checked/enabled. The UI correctly shows the message:
Domain expiry monitoring is not available for ".co" because no RDAP service is listed by IANA
However, two problems remain:
-
The checkbox defaults to checked (enabled) even though it is grayed out. Since it cannot be unchecked by the user, the domain expiry check runs on every heartbeat cycle despite being unsupported. It should default to unchecked/disabled when RDAP is unavailable for the TLD.
-
The warning logs on every single polling cycle, not just once. This results in massive log spam that continues indefinitely for each monitor targeting a .co domain.
👟 Reproduction steps
- Create an HTTP(s) monitor targeting any .co domain (e.g. https://example.co)
- Observe that "Domain Name Expiry Notification" is grayed out but checked
- Save the monitor
- Watch the container logs -- the DOMAIN_EXPIRY warning repeats on every heartbeat
👀 Expected behavior
- When RDAP is unsupported for a TLD, expiryNotification should default to false (disabled), not true
- If the check still somehow runs for an unsupported TLD, the warning should be logged once (or at most on startup), not on every heartbeat cycle
😓 Actual Behavior
- The checkbox is grayed out but enabled, so the expiry check runs every cycle
- The warning fires on every single heartbeat, flooding the logs
🐻 Uptime-Kuma Version
nightly2 (2026-02-06, based on master)
💻 Operating System and Arch
Debian 12 (Docker), amd64
🌐 Browser
N/A (log-level issue, not browser-dependent)
🖥️ Deployment Environment
- Runtime Environment:
- Docker Swarm
- Database:
- MariaDB: Embedded
- Database Storage:
- Filesystem:
- Linux: ext4
- Storage Medium: SSD
- Filesystem:
- Uptime Kuma Setup:
- Number of monitors: Multiple monitors targeting .co domains
📝 Relevant log output
2026-02-06T23:17:55-05:00 [DOMAIN_EXPIRY] WARN: Domain expiry unsupported for '.co' because its RDAP endpoint is not listed in the IANA database.
2026-02-06T23:18:03-05:00 [DOMAIN_EXPIRY] WARN: Domain expiry unsupported for '.co' because its RDAP endpoint is not listed in the IANA database.
2026-02-06T23:18:03-05:00 [DOMAIN_EXPIRY] WARN: Domain expiry unsupported for '.co' because its RDAP endpoint is not listed in the IANA database.
2026-02-06T23:18:06-05:00 [DOMAIN_EXPIRY] WARN: Domain expiry unsupported for '.co' because its RDAP endpoint is not listed in the IANA database.
2026-02-06T23:18:08-05:00 [DOMAIN_EXPIRY] WARN: Domain expiry unsupported for '.co' because its RDAP endpoint is not listed in the IANA database.
2026-02-06T23:18:55-05:00 [DOMAIN_EXPIRY] WARN: Domain expiry unsupported for '.co' because its RDAP endpoint is not listed in the IANA database.