Domain expiry notification defaults to enabled for unsupported TLDs like .co, causing persistent log spam #4680

Closed
opened 2026-02-28 04:11:28 -05:00 by deekerman · 1 comment
Owner

Originally created by @BitWise-0x on GitHub (Feb 6, 2026).

  • #6633 - Domain expiry monitor logs messages twice on every check
  • #6682 - Don't domain expiry warn on .local and similar domains
  • #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

📝 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:

  1. 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.

  2. 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

  1. Create an HTTP(s) monitor targeting any .co domain (e.g. https://example.co)
  2. Observe that "Domain Name Expiry Notification" is grayed out but checked
  3. Save the monitor
  4. 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
  • 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.
2026-02-06T23:19: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:19: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:19: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:19:08-05:00 [DOMAIN_EXPIRY] WARN: Domain expiry unsupported for '.co' because its RDAP endpoint is not listed in the IANA database.
Originally created by @BitWise-0x on GitHub (Feb 6, 2026). ### 📑 I have found these related issues/pull requests - #6633 - Domain expiry monitor logs messages twice on every check - #6682 - Don't domain expiry warn on `.local` and similar domains - #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 - [X] I have read and agree to Uptime Kuma's [Security Policy](https://github.com/louislam/uptime-kuma/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: 1. 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. 2. 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 1. Create an HTTP(s) monitor targeting any `.co` domain (e.g. `https://example.co`) 2. Observe that "Domain Name Expiry Notification" is grayed out but checked 3. Save the monitor 4. 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 - **Uptime Kuma Setup**: - Number of monitors: Multiple monitors targeting `.co` domains ### 📝 Relevant log output ```bash session 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. 2026-02-06T23:19: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:19: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:19: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:19:08-05:00 [DOMAIN_EXPIRY] WARN: Domain expiry unsupported for '.co' because its RDAP endpoint is not listed in the IANA database. ```
deekerman 2026-02-28 04:11:28 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Feb 6, 2026):

@BitWise-0x: Hello! 👋

This issue is being automatically closed because it does not follow the issue template. Please DO NOT open blank issues and use our issue-templates instead.
Blank Issues do not contain the context necessary for a good discussions.

@github-actions[bot] commented on GitHub (Feb 6, 2026): @BitWise-0x: Hello! :wave: This issue is being automatically closed because it does not follow the issue template. Please **DO NOT open blank issues and use our [issue-templates](https://github.com/louislam/uptime-kuma/issues/new/choose) instead**. Blank Issues do not contain the context necessary for a good discussions.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/uptime-kuma#4680
No description provided.