Version
compose.manager-2026.07.02-noarch-0825
Unraid Version
7.3.2
Bug Description
Summary:
Containers in a Compose stack that reference a local icon file via the net.unraid.docker.icon label never show their icon on the Unraid dashboard (Compose panel) — a broken-image / question-mark placeholder is shown instead. Server logs show the plugin requests a filename that is missing its last character, which causes a 404 against a file that actually exists. The Compose Manager Plus tile on the dashboard on the other hand shows icons correctly, so does the plugin itself within the stack configuration in Label section.
Related to issue #127 ?
Seems not to be related to #54
Note:
Hopefully not wasting your time; I just encountered 2 different logs within 1h distance, see below. So right now - after preparing this bug report - I am not so sure any more about the Off-by-one bug analysis. And no, I did not fiddle with the icon paths in the mean time ^^·
I will check back asap when I could hunt this down.
Expected Behavior
The dashboard Compose panel should display the configured icon whenever the net.unraid.docker.icon label points to a valid, readable local file path, matching the behavior already working correctly in the stack detail view.
Steps to Reproduce
- Define a service in a Compose stack with a label pointing to a local file:
labels:
net.unraid.docker.icon: "/mnt/user/appdata/icons/example.png"
- Bring the stack up and confirm the label is present on the running container:
docker inspect <container_name> | grep -i icon
Output:
"net.unraid.docker.icon": "/mnt/user/appdata/icons/example.png",
- Open the Unraid Dashboard → Docker Containers panel and observe the icon for this container/stack. It renders as a broken image / placeholder. The Compose Manager Plus panel shows the correct icons.
Evidence:
- Plugin's internal representation (taken from Compose Manager log), icon field now wrapped with a
file:// scheme:
[INFO] [refreshStackRow] response - Data:
{"project":"<project_name>","data":"{\"result\":\"success\",\"containers\":[{\"name\":\"<container_name>\", ...
\"icon\":\"file:\\/\\/\\/mnt\\/user\\/appdata\\/icons\\/example.png\", ...
- Resulting browser request and nginx error, showing the filename truncated by exactly one character (
example.pn instead of example.png):
nginx: [error] open()
"/usr/local/emhttp/mnt/user/appdata/icons/example.pn" failed
(2: No such file or directory) while sending to client, client: <redacted>,
request: "GET /mnt/user/appdata/icons/example.pn HTTP/1.1",
host: "<redacted>", referrer: "https://<redacted>/Compose"
Notes on this request:
- The only discrepancy between the requested path and the real file is the missing trailing
g in the extension (.pn vs .png).
Relevant Logs
Jul 14 23:05:38 nginx: 2026/07/14 23:05:38 [error] 29065#29065: *103241 open() "/usr/local/emhttp/mnt/user/appdata/icons/example.pn" failed (2: No such file or directory) while sending to client, client: <redacted>, server: , request: "GET /mnt/user/appdata/icons/example.pn HTTP/1.1", host: "<redacted>", referrer: "https://<redacted>/Compose"
Jul 15 00:14:24 nginx: 2026/07/15 00:14:24 [error] 29065#29065: *114127 "/usr/local/emhttp/mnt/user/appdata/icons/example.png/index.html" is not found (20: Not a directory) while sending to client, client: <redacted>, server: , request: "GET /mnt/user/appdata/icons/example.png/ HTTP/1.1", host: "<redacted>", referrer: "https://<redacted>/Compose"
Compose
Additional Context
Suspected Root Cause: Off-by-one
It looks like the plugin internally wraps a local icon path with a file:// scheme, then strips that scheme again when constructing the browser-facing image URL. That strip step appears to drop one extra character from the end of the string — consistent with logic originally intended to remove a trailing character.
Version
compose.manager-2026.07.02-noarch-0825
Unraid Version
7.3.2
Bug Description
Summary:
Containers in a Compose stack that reference a local icon file via the
net.unraid.docker.iconlabel never show their icon on the Unraid dashboard (Compose panel) — a broken-image / question-mark placeholder is shown instead. Server logs show the plugin requests a filename that is missing its last character, which causes a 404 against a file that actually exists. The Compose Manager Plus tile on the dashboard on the other hand shows icons correctly, so does the plugin itself within the stack configuration in Label section.Related to issue #127 ?
Seems not to be related to #54
Note:
Hopefully not wasting your time; I just encountered 2 different logs within 1h distance, see below. So right now - after preparing this bug report - I am not so sure any more about the Off-by-one bug analysis. And no, I did not fiddle with the icon paths in the mean time ^^·
I will check back asap when I could hunt this down.
Expected Behavior
The dashboard Compose panel should display the configured icon whenever the
net.unraid.docker.iconlabel points to a valid, readable local file path, matching the behavior already working correctly in the stack detail view.Steps to Reproduce
Evidence:
file://scheme:example.pninstead ofexample.png):Notes on this request:
gin the extension (.pnvs.png).Relevant Logs
Compose
Additional Context
Suspected Root Cause: Off-by-one
It looks like the plugin internally wraps a local icon path with a
file://scheme, then strips that scheme again when constructing the browser-facing image URL. That strip step appears to drop one extra character from the end of the string — consistent with logic originally intended to remove a trailing character.