gohugoio/hugo · error
config not set
Error message
config not set
What it means
hugoBuilder.withConfE guards every access to the shared commonConfig; if c.conf is nil when a command tries to use it, the guard returns errConfigNotSet. This protects against commands running before configuration has been loaded.
Source
Thrown at commands/hugobuilder.go:81
// May be nil.
s *serverCommand
// Currently only set when in "fast render mode".
changeDetector *fileChangeDetector
visitedURLs *types.EvictingQueue[string]
fullRebuildSem *semaphore.Weighted
debounce func(f func())
onConfigLoaded func(reloaded bool) error
fastRenderMode bool
showErrorInBrowser bool
errState hugoBuilderErrState
}
var errConfigNotSet = errors.New("config not set")
func (c *hugoBuilder) withConfE(fn func(conf *commonConfig) error) error {
c.confmu.Lock()
defer c.confmu.Unlock()
if c.conf == nil {
return errConfigNotSet
}
return fn(c.conf)
}
func (c *hugoBuilder) withConf(fn func(conf *commonConfig)) {
c.confmu.Lock()
defer c.confmu.Unlock()
fn(c.conf)
}
func (c *hugoBuilder) withConfOrOldConf(fn func(conf *commonConfig)) {
c.confmu.Lock()View on GitHub (pinned to 52c9bd7908)
Solutions
- Ensure config loads successfully before invoking builder operations (fix the underlying config load error)
- Confirm a valid Hugo project / config file exists in the working directory
- Restart the server after fixing config so c.conf is repopulated
Defensive patterns
Strategy: validation
Try / catch
if err := builder.withConfE(func(conf *commonConfig) error { ... }); err != nil {
if errors.Is(err, errConfigNotSet) { /* load config first, then retry */ }
} Prevention
- Always run config load before issuing builder commands
- Treat a nil conf as a fatal precondition failure
When it happens
Trigger: Calling a hugoBuilder method that routes through withConfE before c.conf has been populated by doConfigReload/ConfigFromProvider.
Common situations: A command path that skips config loading; a reload failure left c.conf nil; invoking builder helpers during early init.
Related errors
- no modules loaded (need at least the main module)
- must provide cache Dir
- deploy not supported in this version of Hugo; install a rele
- Unable to locate config file or config directory. Perhaps yo
- multihost change detected, please restart server
AI-assisted analysis of gohugoio/hugo@52c9bd7908 (2026-08-09).
Data as JSON: /api/errors/6bbc68262d501eb3.
Report an issue: GitHub.