Erik Osterman (Cloud Posse)
02/20/2026, 5:20 PMJames Humphries
02/20/2026, 5:40 PMJames Humphries
02/20/2026, 5:42 PMErik Osterman (Cloud Posse)
02/20/2026, 5:44 PMErik Osterman (Cloud Posse)
02/20/2026, 5:45 PMErik Osterman (Cloud Posse)
02/20/2026, 5:45 PMJames Humphries
02/20/2026, 5:49 PMtofu init we re-write your statefile to use registry.opentofu.org
I can talk a bit about how it works
Our OpenTofu registry (registry.opentofu.org etc) is hosted as static files in cloudflare r2 (their s3-like service) and we do not put any servers in front of it. It's just a r2 bucket serving on a custom domain.
We have turned off all rate limiting rules from cloudfare, all DDOS protection, anything that could rate limit people.
For all providers in the OpenTofu registry(hashicorp namespace AND everything else) we serves a json file that points to the actual binaries for the providers in github releases, and this is where the tofu binary will download the providers from. (This is most likely where rate limiting is happening, although I've never seen anyone hit it).
If for some reason you were still downloading providers from the terraform registry, that works in 2 ways:
⢠For hashicorp/* namespaced providers, hashicorp serves the binaries up directly from their own servers
⢠For any other namespaced provider, its the same as opentofu, a json file from the registry that points to github releases.James Humphries
02/20/2026, 5:54 PMTF_LOG=debug and look at which http requests are failing to get an idea of what is being rate limited.
I also recommend that if you have an OTEL-compatible tool to turn on OTEL tracing for tofu and that will show you exactly what http requests are happening under the hood, and which are failing. You can find docs about how to enable this here: https://opentofu.org/docs/v1.10/internals/tracing/Erik Osterman (Cloud Posse)
02/20/2026, 5:55 PMJames Humphries
02/20/2026, 5:57 PMErik Osterman (Cloud Posse)
02/20/2026, 9:30 PMErik Osterman (Cloud Posse)
02/20/2026, 9:30 PMErik Osterman (Cloud Posse)
02/20/2026, 9:30 PMJames Humphries
02/21/2026, 2:29 PM