caddyserver/caddy · error

loading fallback encoder module: %v

Error message

loading fallback encoder module: %v

What it means

Error "loading fallback encoder module: %v" thrown in caddyserver/caddy.

Source

Thrown at modules/logging/appendencoder.go:90

// Provision sets up the encoder.
func (fe *AppendEncoder) Provision(ctx caddy.Context) error {
	fe.ctx = ctx
	fe.repl = caddy.NewReplacer()

	if fe.WrappedRaw == nil {
		// if wrap is not specified, default to JSON
		fe.wrapped = &JSONEncoder{}
		if p, ok := fe.wrapped.(caddy.Provisioner); ok {
			if err := p.Provision(ctx); err != nil {
				return fmt.Errorf("provisioning fallback encoder module: %v", err)
			}
		}
		fe.wrappedIsDefault = true
	} else {
		// set up wrapped encoder
		val, err := ctx.LoadModule(fe, "WrappedRaw")
		if err != nil {
			return fmt.Errorf("loading fallback encoder module: %v", err)
		}
		fe.wrapped = val.(zapcore.Encoder)
	}

	return nil
}

// ConfigureDefaultFormat will set the default format to "console"
// if the writer is a terminal. If already configured, it passes
// through the writer so a deeply nested encoder can configure
// its own default format.
func (fe *AppendEncoder) ConfigureDefaultFormat(wo caddy.WriterOpener) error {
	if !fe.wrappedIsDefault {
		if cfd, ok := fe.wrapped.(caddy.ConfiguresFormatterDefault); ok {
			return cfd.ConfigureDefaultFormat(wo)
		}
		return nil
	}

View on GitHub (pinned to 50e54ee279)

Solutions

  1. Check the fallback encoder module name and configuration; the wrapped error identifies the problem.

When it happens

Trigger: Thrown at modules/logging/appendencoder.go:90 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of caddyserver/caddy@50e54ee279 (2026-08-15). Data as JSON: /api/errors/5c2b3c9f7521a13b. Report an issue: GitHub.