"unrecognized directive: experimental_http3"

Hi, Merry Christmas.

Can someone guide me as to what is the new way to enable experimental http3 support in 2.3?

The global option is throwing the following error upon validation:

"unrecognized directive: experimental_http3"

I tried putting the same directive in the server block, but that didn’t work either.


1 Like

Thanks for trying the prerelease! Merry Christmas to you too.

As per the release notes:

:warning: The experimental_http3 global option in the Caddyfile has been replaced with global server options, one of which is the experimental_http3 protocol. Docs will be updated shortly. This is still an unstable feature until HTTP/3 is finalized and our upstream QUIC/H3 lib is stable and we’ve decided to keep HTTP/3 enabled in the core by default.

Since it’s not actually released yet, the updated docs haven’t been published (sorry), but we have a new servers option block that configures protocols per-server (or for all servers, as with this example):

	servers {
		protocol {

Thanks. What would be the Caddyfile equivalent?

experimental_http3 true?

[Anyway, there was a typo error that crept into the file that I didn’t notice, but the message displayed was related to this option. When I fixed the typo, it validated with a warning]

That is the Caddyfile config. It’s a global option. What Matt posted is not JSON.

For the time being, you can find the updated global options docs here, which will be pushed to the site when v2.3 is released.

1 Like

Thanks. Btw, does caddy spawn multiple threads by itself in case of a multple core cpu? Or do we need to instruct it to do so? Or that’s not needed?

Caddy is written in Go, which automatically scales based on available resources, given that the program is written in such a way that supports good concurrency. Caddy is one such program. You have nothing special to do.

1 Like

This topic was automatically closed after 30 days. New replies are no longer allowed.