caddyserver/caddy · error

config for a packet conn wrapper did not provide a value tha

Error message

config for a packet conn wrapper did not provide a value that implements caddy.PacketConnWrapper

What it means

Error "config for a packet conn wrapper did not provide a value that implements caddy.PacketConnWrapper" thrown in caddyserver/caddy.

Source

Thrown at caddyconfig/httpcaddyfile/httptype.go:908

			for _, listenerConfig := range sblock.pile["listener_wrapper"] {
				listenerWrapper, ok := listenerConfig.Value.(caddy.ListenerWrapper)
				if !ok {
					return nil, fmt.Errorf("config for a listener wrapper did not provide a value that implements caddy.ListenerWrapper")
				}
				jsonListenerWrapper := caddyconfig.JSONModuleObject(
					listenerWrapper,
					"wrapper",
					listenerWrapper.(caddy.Module).CaddyModule().ID.Name(),
					warnings,
				)
				srv.ListenerWrappersRaw = append(srv.ListenerWrappersRaw, jsonListenerWrapper)
			}

			// Look for any config values that provide packet conn wrappers on the server block
			for _, listenerConfig := range sblock.pile["packet_conn_wrapper"] {
				packetConnWrapper, ok := listenerConfig.Value.(caddy.PacketConnWrapper)
				if !ok {
					return nil, fmt.Errorf("config for a packet conn wrapper did not provide a value that implements caddy.PacketConnWrapper")
				}
				jsonPacketConnWrapper := caddyconfig.JSONModuleObject(
					packetConnWrapper,
					"wrapper",
					packetConnWrapper.(caddy.Module).CaddyModule().ID.Name(),
					warnings,
				)
				srv.PacketConnWrappersRaw = append(srv.PacketConnWrappersRaw, jsonPacketConnWrapper)
			}

			// set up each handler directive, making sure to honor directive order
			dirRoutes := sblock.pile["route"]
			siteSubroute, err := buildSubroute(dirRoutes, groupCounter, true)
			if err != nil {
				return nil, err
			}

			// add the site block's route(s) to the server

View on GitHub (pinned to 50e54ee279)

Solutions

  1. Ensure the packet conn wrapper module's configuration unmarshals into a value that implements caddy.PacketConnWrapper.
  2. Verify the module name is a registered packet conn wrapper.

When it happens

Trigger: Thrown at caddyconfig/httpcaddyfile/httptype.go:908 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/1c77386950b35755. Report an issue: GitHub.