{"id":"43fe3f836712d6e7","repo":"gohugoio/hugo","slug":"paginate-configuration-setting-must-be-positive","errorCode":null,"errorMessage":"'paginate' configuration setting must be positive to paginate","messagePattern":"'paginate' configuration setting must be positive to paginate","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"resources/page/pagination.go","lineNumber":284,"sourceCode":"\t\treturn conf.Pagination().PagerSize, nil\n\t}\n\n\tif len(options) > 1 {\n\t\treturn -1, errors.New(\"too many arguments, 'pager size' is currently the only option\")\n\t}\n\n\tpas, err := cast.ToIntE(options[0])\n\n\tif err != nil || pas <= 0 {\n\t\treturn -1, errors.New((\"'pager size' must be a positive integer\"))\n\t}\n\n\treturn pas, nil\n}\n\nfunc Paginate(td TargetPathDescriptor, seq any, pagerSize int) (*Paginator, error) {\n\tif pagerSize <= 0 {\n\t\treturn nil, errors.New(\"'paginate' configuration setting must be positive to paginate\")\n\t}\n\n\turlFactory := newPaginationURLFactory(td)\n\n\tvar paginator *Paginator\n\n\tgroups, ok, err := ToPagesGroup(seq)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif ok {\n\t\tpaginator, _ = newPaginatorFromPageGroups(groups, pagerSize, urlFactory)\n\t} else {\n\t\tpages, err := ToPages(seq)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tpaginator, _ = newPaginatorFromPages(pages, pagerSize, urlFactory)","sourceCodeStart":266,"sourceCodeEnd":302,"githubUrl":"https://github.com/gohugoio/hugo/blob/8a468df065a75c1c7cf9f6850f32148746590ea5/resources/page/pagination.go#L266-L302","documentation":"Raised at the top of page.Paginate when the resolved pager size is <= 0. The size comes from the `pagination.pagerSize` (formerly `paginate`) site config or the explicit argument; a zero or negative value makes pagination meaningless, so Hugo refuses to build.","triggerScenarios":"Using .Paginate/.Paginator in a template while site config sets `pagination.pagerSize = 0` (or a negative number), or explicitly disabling pagination via config while a list template still calls .Paginate.","commonSituations":"Setting `paginate = 0` hoping to \"show all pages\" (unsupported — the setting must stay positive), config-migration mistakes from the old `paginate` key to `pagination.pagerSize`, or environment-specific config overriding the value to 0.","solutions":["Set a positive pager size in config, e.g. `[pagination]\\npagerSize = 10` in hugo.toml","To effectively show everything on one page, use a large pager size or drop .Paginate and range .Pages directly","Check per-environment config files for an override zeroing the value"],"exampleFix":"# before (hugo.toml)\n[pagination]\npagerSize = 0\n# after\n[pagination]\npagerSize = 10","handlingStrategy":"validation","validationCode":"# hugo.toml\n[pagination]\npagerSize = 10  # must be > 0","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set pagination.pagerSize to a positive integer in site configuration","Never set the size to 0 or negative to 'disable' pagination — omit .Paginate calls instead","Validate environment-specific config overlays don't zero out the pagination setting"],"tags":["hugo","pagination","configuration"],"analyzedSha":"8a468df065a75c1c7cf9f6850f32148746590ea5","analyzedAt":"2026-07-31T21:23:07.045Z","schemaVersion":2}