Favicon/ PWA manifest (?) issue with 2.1.0 #4692

Closed
opened 2026-02-28 04:11:57 -05:00 by deekerman · 2 comments
Owner

Originally created by @cyrq on GitHub (Feb 10, 2026).

Couldn't find a similar issue.

🛡️ Security Policy

📝 Description

Hi,

something has changed with how Uptime Kuma servers custom icons/ favicons on publicly exposed (via cloudflared + custom domain) status pages.
The first time you load the page it loads the favicon(s) just fine. After a refresh it shows the default set. Clearing the cache and reloading the page repeats the issue.
Accessing the status page (locally) and inspecting it shows:

<link rel="icon" href="/upload/logo1.png?t=1770715343737">
--
<link rel="manifest" href="/api/status-page/statuspagename/manifest.json">

manifest.json is correct.

Inspecting the publicly accessible status page via domain name:

<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
<link rel="manifest" href="/manifest.json" />

and the manifest.json contents:

{
    "name": "Uptime Kuma",
    "short_name": "Uptime Kuma",
    "description": "An easy-to-use self-hosted monitoring tool.",
    "theme_color": "#5cdd8b",
    "start_url": "/",
    "background_color": "#fff",
    "display": "standalone",
    "icons": [
        {
            "src": "icon-192x192.png",
            "sizes": "192x192",
            "type": "image/png"
        },
        {
            "src": "icon-512x512.png",
            "sizes": "512x512",
            "type": "image/png"
        }
    ],
    "shortcuts": [
        {
            "name": "Dashboard",
            "short_name": "Dashboard",
            "description": "View monitoring dashboard",
            "url": "/dashboard",
            "icons": [
                {
                    "src": "icon-192x192.png",
                    "sizes": "192x192",
                    "type": "image/png"
                }
            ]
        },
        {
            "name": "Add Monitor",
            "short_name": "Add Monitor",
            "description": "Add a new monitor",
            "url": "/add",
            "icons": [
                {
                    "src": "icon-192x192.png",
                    "sizes": "192x192",
                    "type": "image/png"
                }
            ]
        },
        {
            "name": "Monitor List",
            "short_name": "List",
            "description": "View all monitors",
            "url": "/list",
            "icons": [
                {
                    "src": "icon-192x192.png",
                    "sizes": "192x192",
                    "type": "image/png"
                }
            ]
        },
        {
            "name": "Settings",
            "short_name": "Settings",
            "description": "Open settings",
            "url": "/settings",
            "icons": [
                {
                    "src": "icon-192x192.png",
                    "sizes": "192x192",
                    "type": "image/png"
                }
            ]
        },
        {
            "name": "Maintenance",
            "short_name": "Maintenance",
            "description": "Manage maintenance windows",
            "url": "/maintenance",
            "icons": [
                {
                    "src": "icon-192x192.png",
                    "sizes": "192x192",
                    "type": "image/png"
                }
            ]
        }
    ]
}

This wasn't an issue on 2.0.x

👟 Reproduction steps

Configure a reverse proxy using Cloudlare: https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel
Configure a domain name for the status page: https://github.com/louislam/uptime-kuma/wiki/Status-Page

👀 Expected behavior

Uptime Kuma should show the custom logo as favicon(s)/ icon(s).

😓 Actual Behavior

Uptime Kuma reverts to it's default favicon(s)/ icon(s).

🐻 Uptime-Kuma Version

2.1.0

💻 Operating System and Arch

Linux raspberrypi 6.12.62+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.62-1+rpt1~bookworm (2026-01-19) aarch64 GNU/Linux

🌐 Browser

Google Chrome 144.0.7559.133 (Official Build) (64-bit)

🖥️ Deployment Environment

  • Runtime Environment:
    • Docker: Version 29.2.0
    • Docker Compose: Version 5.0.2
  • Database:
    • SQLite: Embedded
  • Database Storage:
    • Filesystem:
      • Linux: ext4
    • Storage Medium: SSD
  • Uptime Kuma Setup:
    • Number of monitors: 20

📝 Relevant log output

No relevant log output for this issue.
Originally created by @cyrq on GitHub (Feb 10, 2026). ### 📑 I have found these related issues/pull requests Couldn't find a similar issue. ### 🛡️ Security Policy - [x] I have read and agree to Uptime Kuma's [Security Policy](https://github.com/louislam/uptime-kuma/security/policy). ### 📝 Description Hi, something has changed with how Uptime Kuma servers custom icons/ favicons on publicly exposed (via cloudflared + custom domain) status pages. The first time you load the page it loads the favicon(s) just fine. After a refresh it shows the default set. Clearing the cache and reloading the page repeats the issue. Accessing the status page (locally) and inspecting it shows: ``` <link rel="icon" href="/upload/logo1.png?t=1770715343737"> -- <link rel="manifest" href="/api/status-page/statuspagename/manifest.json"> ``` manifest.json is correct. Inspecting the publicly accessible status page via domain name: ``` <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/svg+xml" href="/icon.svg" /> <link rel="manifest" href="/manifest.json" /> ``` and the manifest.json contents: ``` { "name": "Uptime Kuma", "short_name": "Uptime Kuma", "description": "An easy-to-use self-hosted monitoring tool.", "theme_color": "#5cdd8b", "start_url": "/", "background_color": "#fff", "display": "standalone", "icons": [ { "src": "icon-192x192.png", "sizes": "192x192", "type": "image/png" }, { "src": "icon-512x512.png", "sizes": "512x512", "type": "image/png" } ], "shortcuts": [ { "name": "Dashboard", "short_name": "Dashboard", "description": "View monitoring dashboard", "url": "/dashboard", "icons": [ { "src": "icon-192x192.png", "sizes": "192x192", "type": "image/png" } ] }, { "name": "Add Monitor", "short_name": "Add Monitor", "description": "Add a new monitor", "url": "/add", "icons": [ { "src": "icon-192x192.png", "sizes": "192x192", "type": "image/png" } ] }, { "name": "Monitor List", "short_name": "List", "description": "View all monitors", "url": "/list", "icons": [ { "src": "icon-192x192.png", "sizes": "192x192", "type": "image/png" } ] }, { "name": "Settings", "short_name": "Settings", "description": "Open settings", "url": "/settings", "icons": [ { "src": "icon-192x192.png", "sizes": "192x192", "type": "image/png" } ] }, { "name": "Maintenance", "short_name": "Maintenance", "description": "Manage maintenance windows", "url": "/maintenance", "icons": [ { "src": "icon-192x192.png", "sizes": "192x192", "type": "image/png" } ] } ] } ``` This wasn't an issue on 2.0.x ### 👟 Reproduction steps Configure a reverse proxy using Cloudlare: https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel Configure a domain name for the status page: https://github.com/louislam/uptime-kuma/wiki/Status-Page ### 👀 Expected behavior Uptime Kuma should show the custom logo as favicon(s)/ icon(s). ### 😓 Actual Behavior Uptime Kuma reverts to it's default favicon(s)/ icon(s). ### 🐻 Uptime-Kuma Version 2.1.0 ### 💻 Operating System and Arch Linux raspberrypi 6.12.62+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.62-1+rpt1~bookworm (2026-01-19) aarch64 GNU/Linux ### 🌐 Browser Google Chrome 144.0.7559.133 (Official Build) (64-bit) ### 🖥️ Deployment Environment - **Runtime Environment**: - Docker: Version 29.2.0 - Docker Compose: Version 5.0.2 - **Database**: - SQLite: Embedded - **Database Storage**: - **Filesystem**: - Linux: ext4 - **Storage Medium**: SSD - **Uptime Kuma Setup**: - Number of monitors: `20` ### 📝 Relevant log output ```bash session No relevant log output for this issue. ```
deekerman 2026-02-28 04:11:57 -05:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@louislam commented on GitHub (Feb 10, 2026):

Cannot reproduce. Also cloudflared + custom domain + 2.1
https://status.louislam.net

And the logic did not seem to be modified in 2.1.

https://github.com/louislam/uptime-kuma/pull/6377 is related to PWA, but I don't think it would cause this issue.

May need clearer reproduction steps.

@louislam commented on GitHub (Feb 10, 2026): Cannot reproduce. Also cloudflared + custom domain + 2.1 https://status.louislam.net And the logic did not seem to be modified in 2.1. https://github.com/louislam/uptime-kuma/pull/6377 is related to PWA, but I don't think it would cause this issue. May need clearer reproduction steps.
Author
Owner

@louislam commented on GitHub (Feb 11, 2026):

Wait, I just randomly refresh my page and see this too... That is strange.

It may be related to this #6421, it looks like the service worker is doing strange things to our frontend.

@louislam commented on GitHub (Feb 11, 2026): Wait, I just randomly refresh my page and see this too... That is strange. It may be related to this #6421, it looks like the service worker is doing strange things to our frontend.
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#4692
No description provided.