glanceapp/glance · error

page %d has more than 3 columns

Error message

page %d has more than 3 columns

What it means

For any page not marked slim (default or wide), a maximum of 3 columns applies; this page has 4 or more. The three-column grid is the layout ceiling for normal-width pages.

Source

Thrown at internal/glance/config.go:513

		}

		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" {
				return fmt.Errorf("column %d of page %d: size can only be either small or full", j+1, i+1)
			}

			columnSizesCount[page.Columns[j].Size]++
		}

		full := columnSizesCount["full"]

		if full > 2 || full == 0 {

View on GitHub (pinned to 91324e8de7)

Solutions

  1. Cut the column list to 3 or fewer by merging widgets into shared columns
  2. Reconsider layout: multiple small widgets can stack within one column

Example fix

# before
  columns:
    - size: full
    - size: small
    - size: small
    - size: small
# after
  columns:
    - size: full
    - size: small
    - size: small
Defensive patterns

Strategy: validation

Validate before calling

for i, p := range cfg.Pages {
    if p.Width != "slim" && len(p.Columns) > 3 {
        return fmt.Errorf("page %d: max 3 columns", i+1)
    }
}

Prevention

When it happens

Trigger: len(pages[N].columns) > 3 while page.Width != "slim" — i.e. a default/wide page with four or more column entries.

Common situations: Adding a fourth column for more widgets; generated configs that emit one column per widget group; misunderstanding that small columns don't bypass the cap.

Related errors


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