mattermost-community/focalboard · error
views limit reached for board
Error message
views limit reached for board
What it means
ErrViewsLimitReached is returned when a board has hit the maximum number of allowed views, a limit enforced on free/unlicensed Mattermost Boards installations. Views are tab-like display surfaces (board/table/gallery/calendar) attached to a board. The limit is a licensing restriction, not a data-integrity error.
Source
Thrown at server/model/error.go:16
package model
import (
"database/sql"
"errors"
"fmt"
"net/http"
"strings"
mmModel "github.com/mattermost/mattermost/server/public/model"
pluginapi "github.com/mattermost/mattermost/server/public/pluginapi"
)
var (
ErrViewsLimitReached = errors.New("views limit reached for board")
ErrPatchUpdatesLimitedCards = errors.New("patch updates cards that are limited")
ErrInsufficientLicense = errors.New("appropriate license required")
ErrCategoryPermissionDenied = errors.New("category doesn't belong to user")
ErrCategoryDeleted = errors.New("category is deleted")
ErrBoardMemberIsLastAdmin = errors.New("cannot leave a board with no admins")
ErrRequestEntityTooLarge = errors.New("request entity too large")
ErrInvalidBoardSearchField = errors.New("invalid board search field")
)
// ErrNotFound is an error type that can be returned by store APIs
// when a query unexpectedly fetches no records.
type ErrNotFound struct {
entity stringView on GitHub (pinned to a84bbb65e3)
Solutions
- Delete unused views from the board to free a slot
- Upgrade to a Mattermost license that includes unlimited Boards views
- Run Mattermost in a mode/edition where Boards views are not metered
Defensive patterns
Strategy: type-guard
Validate before calling
views, err := app.GetViewsForBoard(boardID)
if err == nil && len(views) >= limit {
// prompt user to delete a view before creating another
} Type guard
func isViewsLimitErr(err error) bool {
return errors.Is(err, model.ErrViewsLimitReached)
} Try / catch
view, err := app.CreateView(boardID)
if errors.Is(err, model.ErrViewsLimitReached) {
// surface upgrade prompt or delete-and-retry
} Prevention
- Count views before creating new ones
- Show an upgrade prompt in free-tier UIs
- Monitor license state changes that enable the limit
When it happens
Trigger: Calling the create-view API (POST /api/v1/boards/{boardID}/views) when the board already contains the maximum number of views permitted by the current license state.
Common situations: Free-tier Mattermost installs after Mattermost changed Boards views to a paid feature; teams sharing boards with many views; upgrades that introduce the licensing check where it previously did not exist.
Related errors
- patch updates cards that are limited
- appropriate license required
- moveBoardsToDefaultCategory: %w
- turning on sharing for board failed, see log for details
- block fields size limit exceeded
AI-assisted analysis of mattermost-community/focalboard@a84bbb65e3 (2026-08-30).
Data as JSON: /api/errors/a68769072155f79e.
Report an issue: GitHub.