I may have messed up with crates.io

Hi, everybody

So today I published a rather big workspace, and as a result I got asked twice:

the remote server responded with an error (status 429 Too Many Requests): You have published too many crates in a short period of time. Please try again after Tue, 27 Dec 2022 17:25:13 GMT or email help@crates.io to have your limit increased.

First of all my most sincere apology to anyone I inconvenienced publishing so many crates, I'm so sorry. I will try to never publish so many crates again on one go. And if i find myself in the need I'll contact the crates.io team beforehand.

I still some questions. Why is it unreasonable to try an publish eight packages in the workspace, one after the other? Do teams with really big projects like tokio have to coordinate for this kind of thing?

Maybe I have oversplitted my code. Is there a general rule for deciding when to split a piece of code in a workspace? I splitted at what I thought were open and closed pieces of code. Are there better criteria?

Thanks for any answers and again I'm sorry for any inconvenience I may have caused.


According to the source code the following rate limiting is used (crates.io/nginx.conf.erb at 6bf32bab3afc21d18b307168ae78b6b07585ebd7 · rust-lang/crates.io · GitHub)

limit_req_zone $remote_addr zone=publish:10m rate=1r/m;
limit_req zone=publish burst=30 nodelay;

which means 1 publish per minute is allowed with a burst size of 30 published crates.

Publishing just 8 crates at a time shouldn't cause a rate limiting as far as I understand.

It's not a problem to publish many packages as long as you do so for legitimate reasons. Just wait for the time limit to expire, then publish the rest of them.

There's also been earlier discussion about this in the crates.io repository:

1 Like

Thanks a lot!

That's exactly what I did, glad to know I won't be on a bad rustaceans list in the future

I may have violated the publishing/minute because some of the crates were rather small

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.