{"record":{"id":"83961d6618ab7eaf","repo":"gohugoio/hugo","slug":"invalid-deployment-orderings-pattern-v","errorCode":null,"errorMessage":"invalid deployment.orderings.pattern: %v","messagePattern":"invalid deployment\\.orderings\\.pattern: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"deploy/deployconfig/deployConfig.go","lineNumber":173,"sourceCode":"\t\t}\n\t\tif err := tgt.ParseIncludeExclude(); err != nil {\n\t\t\treturn dcfg, err\n\t\t}\n\t}\n\tvar err error\n\tfor _, m := range dcfg.Matchers {\n\t\tif *m == (Matcher{}) {\n\t\t\treturn dcfg, errors.New(\"empty deployment matcher\")\n\t\t}\n\t\tm.Re, err = regexp.Compile(m.Pattern)\n\t\tif err != nil {\n\t\t\treturn dcfg, fmt.Errorf(\"invalid deployment.matchers.pattern: %v\", err)\n\t\t}\n\t}\n\tfor _, o := range dcfg.Order {\n\t\tre, err := regexp.Compile(o)\n\t\tif err != nil {\n\t\t\treturn dcfg, fmt.Errorf(\"invalid deployment.orderings.pattern: %v\", err)\n\t\t}\n\t\tdcfg.Ordering = append(dcfg.Ordering, re)\n\t}\n\n\treturn dcfg, nil\n}\n","sourceCodeStart":155,"sourceCodeEnd":180,"githubUrl":"https://github.com/gohugoio/hugo/blob/52c9bd7908b4d02d4d0ff8f82a888834d6ee10d2/deploy/deployconfig/deployConfig.go#L155-L180","documentation":"DecodeConfig (deploy/deployconfig/deployConfig.go:171) compiles each entry in deployment.order as a regexp and appends it to the Ordering list (which controls upload ordering). This wraps regexp.Compile failure for any order pattern.","triggerScenarios":"A value under `order = [...]` (deployment orderings) that is not valid regex: e.g. 'index.html' written as a glob, an unbalanced group, or a dangling '*'.","commonSituations":"Assuming order entries are globs or plain substrings; copy-pasting a pattern from a glob-based tool; typo producing invalid regex.","solutions":["Treat each order entry as a regex: use '.*' for 'any', anchor as needed, escape literal dots.","Validate every entry with regexp.Compile in isolation.","Balance parentheses/character classes; remove stray quantifiers."],"exampleFix":"# before\n[deployment]\norder = [\"index.html\", \"*.css\"]   # second entry is glob -> invalid regex\n\n# after\n[deployment]\norder = [\"index\\\\.html$\", \".*\\\\.css$\"]","handlingStrategy":"validation","validationCode":"import \"regexp\"\n\nfunc ValidateOrderPatterns(order []string) error {\n    for _, o := range order {\n        if _, err := regexp.Compile(o); err != nil {\n            return fmt.Errorf(\"order %q: %w\", o, err)\n        }\n    }\n    return nil\n}","typeGuard":null,"tryCatchPattern":"if _, err := deployconfig.DecodeConfig(cfg); err != nil {\n    return err\n}","preventionTips":["order entries are regex, not globs.","Anchor and escape patterns deliberately.","Lint order patterns in CI."],"tags":["deploy","config","regex"],"backgroundTag":null,"analyzedSha":"52c9bd7908b4d02d4d0ff8f82a888834d6ee10d2","analyzedAt":"2026-08-09T21:49:36.660Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}