gohugoio/hugo · error
failed to resolve media type for %q
Error message
failed to resolve media type for %q
What it means
Thrown by resolveContentType as the final fallback after it tried both the explicit Content.MediaType (via mediaTypes.GetByType) and the Content.Markup string (via MarkupToMediaType) and the resolved ContentMediaType is still zero. The reported string is the markup or mediaType value that could not be resolved.
Source
Thrown at resources/page/pagemeta/page_frontmatter.go:430
return fmt.Errorf("failed to resolve media type for suffix %q", ext)
}
}
var s string
if p.ContentMediaType.IsZero() {
if p.Content.MediaType != "" {
s = p.Content.MediaType
p.ContentMediaType, _ = mediaTypes.GetByType(s)
}
if p.ContentMediaType.IsZero() && p.Content.Markup != "" {
s = p.Content.Markup
p.ContentMediaType = MarkupToMediaType(s, mediaTypes)
}
}
if p.ContentMediaType.IsZero() {
return fmt.Errorf("failed to resolve media type for %q", s)
}
if p.Content.Markup == "" {
p.Content.Markup = p.ContentMediaType.SubType
}
return nil
}
// Compile sets up the page configuration after all fields have been set.
func (p *PageConfigLate) Compile(e *PageConfigEarly, logger loggers.Logger, outputFormats output.Formats) error {
if e.IsFromContentAdapter {
if err := mapstructure.WeakDecode(p.ContentAdapterData, p); err != nil {
err = fmt.Errorf("failed to decode page map: %w", err)
return err
}
}
if p.Params == nil {View on GitHub (pinned to 52c9bd7908)
Solutions
- Correct the markup/mediaType value to one Hugo knows (md, html, org, rst, asciidoc, pandoc, etc.).
- Register the custom media type under [mediaTypes] and (if needed) a content adapter for it.
- Leave markup empty so Hugo infers it from the file extension.
Example fix
# before --- markup: mardown --- # after --- markup: md ---
Defensive patterns
Strategy: validation
Validate before calling
s := strings.ToLower(markupOrMediaType)
if _, found := mediaTypes.GetByType(s); !found {
if mt := pagemeta.MarkupToMediaType(s, mediaTypes); mt.IsZero() {
return fmt.Errorf("unknown markup/mediaType %q", s)
}
} Try / catch
if err := pcfg.CompileEarly(pi, cascades, conf, fim, base, false); err != nil {
return fmt.Errorf("resolve media type: %w", err)
} Prevention
- Use recognized markup identifiers (md, html, org, rst, asciidoc).
- Register custom media types before referencing them in markup/mediaType.
- Leave markup unset to rely on extension inference.
When it happens
Trigger: Front matter or page config sets 'markup' or 'mediaType' to a value that does not map to any registered media type, e.g. 'markup: myownformat' or 'mediaType: application/x-nonexistent'.
Common situations: Typos in the markup/mediaType front matter value, referencing a media type that was not added under [mediaTypes], or assuming a format is built-in when it requires a content adapter or config.
Related errors
- failed to resolve media type for suffix %q
- media type %q not found
- failed to decode sites from front matter: %w
- failed to decode page map: %w
- failed to resolve output formats %v: %w
AI-assisted analysis of gohugoio/hugo@52c9bd7908 (2026-08-09).
Data as JSON: /api/errors/b0400317be43c923.
Report an issue: GitHub.