caddyserver/caddy · error

marshaling ECH config metadata: %v

Error message

marshaling ECH config metadata: %v

What it means

Error "marshaling ECH config metadata: %v" thrown in caddyserver/caddy.

Source

Thrown at modules/caddytls/ech.go:503

				}
				logger.Info("successfully published ECH configuration list for "+someAll+" domains",
					zap.String("publisher", publisherKey),
					zap.Strings("domains", successNames),
					zap.Uint8s("config_ids", configIDs))

				for _, cfg := range echCfgList {
					if cfg.meta.Publications == nil {
						cfg.meta.Publications = make(publicationHistory)
					}
					if _, ok := cfg.meta.Publications[publisherKey]; !ok {
						cfg.meta.Publications[publisherKey] = make(map[string]time.Time)
					}
					for _, name := range successNames {
						cfg.meta.Publications[publisherKey][name] = pubTime
					}
					metaBytes, err := json.Marshal(cfg.meta)
					if err != nil {
						return fmt.Errorf("marshaling ECH config metadata: %v", err)
					}
					if err := t.ctx.Storage().Store(t.ctx, echMetaKey(cfg.ConfigID), metaBytes); err != nil {
						return fmt.Errorf("storing updated ECH config metadata: %v", err)
					}
				}
			} else {
				logger.Error("all domains failed to publish ECH configuration list (see earlier errors)",
					zap.String("publisher", publisherKey),
					zap.Strings("domains", dnsNamesToPublish),
					zap.Uint8s("config_ids", configIDs))
			}
		}
	}

	return nil
}

// loadECHConfig loads the config from storage with the given configID.

View on GitHub (pinned to 50e54ee279)

Solutions

  1. This is an internal serialization failure; check the wrapped error and report if persistent.

When it happens

Trigger: Thrown at modules/caddytls/ech.go:503 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/d78a243106b8d56f. Report an issue: GitHub.