Replies: 2 comments
|
Can you double-check youre on 2.1.2? 2.1.2 fixes exactly this bug in 2.1.1 and others reported it fixed that |
0 replies
|
Confirmed, thanks for the push to double check. /app/package.json inside |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Description
After Watchtower auto-updated the homepage container (landed on v2.1.2,
confirmed via docker exec homepage cat /app/package.json), the dashboard
stopped loading entirely with a YAMLException on services.yaml (full
error in Container Logs below).
My services.yaml has about 23 unquoted {{HOMEPAGE_VAR_*}} references
(see Configuration below), which has worked for a long time. My
understanding is that homepage normally substitutes {{HOMEPAGE_VAR_X}}
in the raw config text before handing it to the YAML parser, so the
parser never actually sees a literal "{{". Something about that
ordering seems to have changed, since the parser now appears to see the
raw "{{" before substitution happens, and unquoted "{{" is YAML
flow-mapping syntax, so using it as a map key produces exactly the
"object-based map does not support complex keys" error.
Quoting every {{HOMEPAGE_VAR_*}} reference fixed it immediately with no
other changes (details in Troubleshooting below).
Questions: is this an intentional behavior change (config parsing now
happens before/without the raw-text substitution step), or a
regression? If intentional, could the docs and example services.yaml be
updated to show the quoted form consistently? A lot of older tutorials
and community configs (including some in this repo's own past
discussions) show it unquoted, so I'd expect others on :latest to hit
this the same way once their container updates.
Environment: ghcr.io/gethomepage/homepage:latest, updated via
Watchtower, Docker Compose on Synology DSM.
homepage version
2.1.2
Installation method
Docker
Configuration
Container Logs
[timestamp] error: Configuration validation errors [
{
reason: 'object-based map does not support complex keys',
mark: { name: '', position: 0, line: 0, column: 0 },
name: 'YAMLException',
config: 'services.yaml'
}
]
Note: the reported line 0 / column 0 position is not the real location of
the problem, just wherever the wrapped error defaults to when rethrown.
Browser Logs
Not applicable. The config fails to validate server side before the
dashboard ever renders, so there is nothing to load in the browser.
Troubleshooting
Followed the docs troubleshooting guide's log-check step (checked
config/logs/homepage.log via
docker logs homepage, which is where theYAMLException above came from).
Ruled out an environment variable problem before assuming a parsing
change:
docker exec homepage env | grep HOMEPAGE_VARconfirmedHOMEPAGE_VAR_HA_TOKEN, HOMEPAGE_VAR_SHARED_PW, and
HOMEPAGE_VAR_IMMICH_API_KEY were all present and correct inside the
container the entire time. So the values were being injected fine, the
parser just never got the chance to see the substituted string.
Isolated the fix by editing only the services.yaml file (quoting each
{{HOMEPAGE_VAR_*}}reference) with no other config, compose, or envchanges, then restarting the container.
docker logs homepageon thefresh start showed zero YAMLException, and
docker exec homepage wget -qO- http://localhost:3000/confirmed the real dashboard contentwas being served (matching service names present in the rendered HTML).
Confirmed via
docker exec homepage cat /app/package.jsonthat therunning version is 2.1.2.
All reactions