Skip to content

[4.22] Favicon only appears briefly, then disappears #12079

@nimbustech-lab

Description

@nimbustech-lab

problem

When customizing the Primate UI’s favicon, it flashes for ~0.5 seconds during page load (while index.html is rendered) and then disappears as the SPA transitions to a white page before the login view fully loads. The favicon never reappears even though the icon file is valid and reachable.

The favicon 99% of the time:
Image

The favicon when it loads for 0.5 seconds:
Image

versions

Environment

  • Apache CloudStack version: 4.22.0.0
  • OS: Ubuntu Noble (management server)
  • Browser(s) tested: Chrome / Opera (same behavior)
  • Deployment setup: Two management servers behind a VIP with HAProxy

The steps to reproduce the bug

  1. Replace default favicon:

File: /usr/share/cloudstack-management/webapp/cloud.ico
File: /usr/share/cloudstack-management/webapp/assets/logo.svg

  1. Clear browser cache and reload the login page.
  2. Observe favicon behavior during and after page load.

...

What to do about it?

The Primate UI currently references two favicon sources:

  • A hardcoded <link rel="icon" href="cloud.ico"> in index.html
  • A configurable "loginFavicon": "assets/logo.svg" entry in /etc/cloudstack/management/config.json

This creates inconsistent behavior — the browser loads cloud.ico first (from index.html), then when the SPA initializes and renders based on config.json, the favicon reference isn’t updated or re-applied, causing it to disappear.

To fix this:

  • Unify favicon handling so the UI consistently uses the favicon defined in config.json (similar to appTitle and loginTitle), and
  • Remove or override the hardcoded cloud.ico link in index.html at runtime.

Alternatively, ensure the SPA explicitly re-sets the favicon after it mounts (e.g., by adding a small function that reads the loginFavicon key and updates <link rel="icon"> dynamically).

This would let the favicon persist across page transitions and make it fully configurable, just like the logo and title.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions