{"record":{"id":"f19dee40ee006ce7","repo":"gohugoio/hugo","slug":"no-taxonomy-configuration-found-for-q","errorCode":null,"errorMessage":"no taxonomy configuration found for %q","messagePattern":"no taxonomy configuration found for %q","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"hugolib/page__meta.go","lineNumber":323,"sourceCode":"\t\t\tm.pathInfo = m.f.FileInfo().Meta().PathInfo\n\t\t}\n\n\t\tif m.pathInfo == nil {\n\t\t\tpanic(fmt.Sprintf(\"missing pathInfo in %v\", m))\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (m *pageMeta) initLate(s *Site) error {\n\tvar tc viewName\n\n\tif m.pageConfigSource.Kind == kinds.KindTerm || m.pageConfigSource.Kind == kinds.KindTaxonomy {\n\t\tif tc.IsZero() {\n\t\t\ttc = s.pageMap.cfg.getTaxonomyConfig(m.Path())\n\t\t}\n\t\tif tc.IsZero() {\n\t\t\treturn fmt.Errorf(\"no taxonomy configuration found for %q\", m.Path())\n\t\t}\n\t\tm.singular = tc.singular\n\n\t\tif m.pageConfigSource.Kind == kinds.KindTerm {\n\t\t\tm.term = paths.TrimLeading(strings.TrimPrefix(m.pathInfo.Unnormalized().Base(), \"/\"+tc.plural))\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// bookmark1\nfunc (h *HugoSites) newPageMetaSourceFromFile(fi hugofs.FileMetaInfo) (*pageMetaSource, error) {\n\tp, err := func() (*pageMetaSource, error) {\n\t\tmeta := fi.Meta()\n\t\topenSource := func() (hugio.ReadSeekCloser, error) {\n\t\t\tr, err := meta.Open()\n\t\t\tif err != nil {","sourceCodeStart":305,"sourceCodeEnd":341,"githubUrl":"https://github.com/gohugoio/hugo/blob/52c9bd7908b4d02d4d0ff8f82a888834d6ee10d2/hugolib/page__meta.go#L305-L341","documentation":"Returned by pageMeta.initLate (page__meta.go:323) for a page whose Kind is taxonomy or term when getTaxonomyConfig finds no matching view. getTaxonomyConfig (content_map.go:231) matches the page path against the configured plural tree keys; if none prefix-matches, the taxonomy view is empty and Hugo cannot resolve singular/plural names for the page.","triggerScenarios":"A content file is placed under a taxonomy path (e.g. content/tags/foo.md giving Kind=term) but the site's [taxonomies] config does not define that taxonomy (no `tag = \"tags\"` entry), so no view matches the path. Also possible if the taxonomy key casing/pluralization in config differs from the directory.","commonSituations":"Theme expects 'tags'/'categories' but the user disabled or renamed taxonomies in config; orphaned taxonomy content left after removing a taxonomy; directory name and config plural not matching.","solutions":["Add the taxonomy to config: [taxonomies]\\ntag = \"tags\" (hugo.toml), matching the content directory name.","Make the content directory plural match the configured value exactly.","Remove the orphaned taxonomy/term content file if that taxonomy is intentionally disabled."],"exampleFix":"// before (content/tags/foo.md exists, no taxonomies config)\n// -> error: no taxonomy configuration found for \"/tags/foo/\"\n\n// after (hugo.toml)\n[taxonomies]\ntag = \"tags\"","handlingStrategy":"validation","validationCode":"# every taxonomy dir under content/ must have a matching [taxonomies] entry\nfor d in content/*/ ; do n=$(basename \"$d\"); grep -q \"^$n\\b\" config.toml || echo \"missing taxonomies entry: $n\"; done","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Define every taxonomy you use under [taxonomies] with plural = singular.","Keep content directory names equal to the configured plural.","Delete taxonomy content for taxonomies you've intentionally removed."],"tags":["taxonomy","config","page","front-matter"],"backgroundTag":null,"analyzedSha":"52c9bd7908b4d02d4d0ff8f82a888834d6ee10d2","analyzedAt":"2026-08-09T21:49:36.660Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}