glanceapp/glance · warning
missing timezone value
Error message
missing timezone value
What it means
For every mountpoint surfaced by disk.Partitions() plus any explicitly configured ones, Glance calls disk.Usage() and wraps failures as 'getting filesystem usage for %s: %v'. The mountpoint is simply omitted from info.Mountpoints on failure.
Source
Thrown at internal/glance/widget-clock.go:33
HourFormat string `yaml:"hour-format"`
Timezones []struct {
Timezone string `yaml:"timezone"`
Label string `yaml:"label"`
} `yaml:"timezones"`
}
func (widget *clockWidget) initialize() error {
widget.withTitle("Clock").withError(nil)
if widget.HourFormat == "" {
widget.HourFormat = "24h"
} else if widget.HourFormat != "12h" && widget.HourFormat != "24h" {
return errors.New("hour-format must be either 12h or 24h")
}
for t := range widget.Timezones {
if widget.Timezones[t].Timezone == "" {
return errors.New("missing timezone value")
}
if _, err := time.LoadLocation(widget.Timezones[t].Timezone); err != nil {
return fmt.Errorf("invalid timezone '%s': %v", widget.Timezones[t].Timezone, err)
}
}
widget.cachedHTML = widget.renderTemplate(widget, clockWidgetTemplate)
return nil
}
func (widget *clockWidget) Render() template.HTML {
return widget.cachedHTML
}
View on GitHub (pinned to 91324e8de7)
Solutions
- Identify the failing path from the error message and check on the host: df <path> / mount | grep <path>
- If the mount is stale (e.g. dead NFS), unmount it properly: sudo umount -l /stale/mount
- Hide the problem mount in widget config: mountpoints: { "/stale/mount": { hide: true } } or set hide-mountpoints-by-default and whitelist
- For containers, filter host mounts so only paths present in the container are requested
Example fix
// before (glance.yml)
- type: system
# auto-discovers all partitions including dead NFS /mnt/nas
// after: hide the unreachable mount
- type: system
mountpoints:
/mnt/nas:
hide: true Defensive patterns
Strategy: validation
Validate before calling
if usage, err := disk.Usage(path); err != nil {
log.Printf("skipping mount %s: %v", path, err)
continue // omit this mountpoint, keep others
} else {
_ = usage
} Prevention
- Hide stale/unreachable mounts via mountpoints: { path: { hide: true } }
- Lazy-unmount dead NFS shares (umount -l) so /proc/mounts stops listing them
- In containers, only request mountpoints that exist in the container namespace
When it happens
Trigger: disk.Usage(requestedPath) fails: the mountpoint no longer exists (unmounted USB/NFS), a stale/dangling entry in /proc/self/mounts (common with bind mounts in containers), permission denied on the mount root, or statfs failing on network storage that has gone away.
Common situations: Auto-discovered partitions (disk.Partitions(false) lists physical mounts) including an unreachable NFS/SMB share; containers where the host's /proc/mounts references paths not present in the container namespace; recently removed removable media.
Related errors
- template is required
- usernames must be at least 3 characters
- hour-format must be either 12h or 24h
- invalid first day of week
- invalid body type, must be either 'json' or 'string'
AI-assisted analysis of glanceapp/glance@91324e8de7 (2026-08-15).
Data as JSON: /api/errors/e4b4549d16c07f35.
Report an issue: GitHub.