glanceapp/glance · error

page %d has no columns

Error message

page %d has no columns

What it means

Each page must contain at least one column; a page with an empty or missing columns list fails validation. Columns are the top-level layout containers that hold widgets, so a column-less page cannot render anything.

Source

Thrown at internal/glance/config.go:504

	for i := range config.Pages {
		page := &config.Pages[i]

		if page.Title == "" {
			return fmt.Errorf("page %d has no name", i+1)
		}

		if page.Width != "" && (page.Width != "wide" && page.Width != "slim" && page.Width != "default") {
			return fmt.Errorf("page %d: width can only be either wide or slim", i+1)
		}

		if page.DesktopNavigationWidth != "" {
			if page.DesktopNavigationWidth != "wide" && page.DesktopNavigationWidth != "slim" && page.DesktopNavigationWidth != "default" {
				return fmt.Errorf("page %d: desktop-navigation-width can only be either wide or slim", i+1)
			}
		}

		if len(page.Columns) == 0 {
			return fmt.Errorf("page %d has no columns", i+1)
		}

		if page.Width == "slim" {
			if len(page.Columns) > 2 {
				return fmt.Errorf("page %d is slim and cannot have more than 2 columns", i+1)
			}
		} else {
			if len(page.Columns) > 3 {
				return fmt.Errorf("page %d has more than 3 columns", i+1)
			}
		}

		columnSizesCount := make(map[string]int)

		for j := range page.Columns {
			column := &page.Columns[j]

			if column.Size != "small" && column.Size != "full" {

View on GitHub (pinned to 91324e8de7)

Solutions

  1. Add a columns list with at least one column (size: full or small) to the page named by its number
  2. Fix indentation so columns belongs to the page item
  3. If building pages via includes, ensure the included fragment contains the columns structure

Example fix

# before
- name: Home
# after
- name: Home
  columns:
    - size: full
      widgets: []
Defensive patterns

Strategy: validation

Validate before calling

for i, p := range cfg.Pages {
    if len(p.Columns) == 0 {
        return fmt.Errorf("page %d has no columns", i+1)
    }
}

Prevention

When it happens

Trigger: A page entry with columns: omitted, columns: [] (empty list), or indentation that places the columns key outside the page item. Includes that produce a page without columns also trigger it.

Common situations: New page scaffolded with only a name; commenting out all columns during layout experiments; YAML indentation errors merging includes.

Related errors


AI-assisted analysis of glanceapp/glance@91324e8de7 (2026-08-15). Data as JSON: /api/errors/97d4faebc7d0b981. Report an issue: GitHub.