glanceapp/glance · error
nested groups are not supported
Error message
nested groups are not supported
What it means
Thrown by the group widget's initialize() when one of its direct children has type group. Glance flattens rendering one level deep inside groups, so a group nested inside a group is rejected at config-parse time before any child widgets initialize.
Source
Thrown at internal/glance/widget-group.go:25
"time"
)
var groupWidgetTemplate = mustParseTemplate("group.html", "widget-base.html")
type groupWidget struct {
widgetBase `yaml:",inline"`
containerWidgetBase `yaml:",inline"`
}
func (widget *groupWidget) initialize() error {
widget.withError(nil)
widget.HideHeader = true
for i := range widget.Widgets {
widget.Widgets[i].setHideHeader(true)
if widget.Widgets[i].GetType() == "group" {
return errors.New("nested groups are not supported")
} else if widget.Widgets[i].GetType() == "split-column" {
return errors.New("split columns inside of groups are not supported")
}
}
if err := widget.containerWidgetBase._initializeWidgets(); err != nil {
return err
}
return nil
}
func (widget *groupWidget) update(ctx context.Context) {
widget.containerWidgetBase._update(ctx)
}
func (widget *groupWidget) setProviders(providers *widgetProviders) {
widget.containerWidgetBase._setProviders(providers)View on GitHub (pinned to 91324e8de7)
Solutions
- Move the inner group out to the page's top-level widgets list, next to the outer group
- Merge the inner group's widgets directly into the outer group's widgets list
- Use separate pages (or a bookmarks/widget layout) to express the extra hierarchy level
Example fix
# before
- type: group
widgets:
- type: group
widgets:
- type: bookmark
# after
- type: group
widgets:
- type: bookmark Defensive patterns
Strategy: validation
Validate before calling
def check_groups(widgets, inside_group=False):
for w in widgets or []:
if w['type'] == 'group':
if inside_group:
raise ValueError('nested groups are not supported')
check_groups(w.get('widgets'), inside_group=True)
elif w['type'] == 'split-column':
check_groups(w.get('widgets'), inside_group=False) Prevention
- Remember groups are one level deep; plan page layout as a flat list of groups
- When reorganizing, paste groups beside other groups, not inside
- Add a structural lint that walks widget trees and rejects group-in-group
When it happens
Trigger: A page config where a group widget's widgets list contains another item with type: group; commonly happens when copy-pasting a working group widget into an existing group to 'merge' sections.
Common situations: Reorganizing a page and dropping a group block inside another group; trying to build two-level tab/section hierarchies that Glance's layout does not support.
Related errors
- split columns inside of groups are not supported
- URL is required
- source is required
- subreddit is required
- no `{REQUEST-URL}` placeholder specified
AI-assisted analysis of glanceapp/glance@91324e8de7 (2026-08-15).
Data as JSON: /api/errors/a8d9a3eb57f2a38e.
Report an issue: GitHub.