Obtainium hitting rate limit

It looks like Obtainium is immediately hitting a rate limit when trying to setup a new app.

For example this repo: https://codefloe.com/SnappTechnology/NextCloudTalkNext

Is there a way we could have Obtainium allowed as it’s a very popular way to install Open Source apps on Android?

We checked the requests in our logs.

There a few details to this issue:

  1. CF currently has a 150 requests per minute cap across an entire IPv4 /16 for unauthenticated requests
  2. Obtainium has a hardcoded override for Codeberg (this is questionable as it should rather have one for Forgejo as a forge and not treat Codeberg == Forgejo). Other Forgejo-based instances must be selected manually.
  3. Obtainium doesn’t send any User Agent to authenticate itself
  4. Unless users set “Override source → Forgejo (Codeberg)” explicitly, Obtainium goes the raw HTML route instead of actually using the API. This is why your screenshot shows “Additional options for HTML” → Obtainium treated codefloe.com/SnappTechnology/NextCloudTalkNext as a generic webpage.

So here are a few recommendations from our side to enhance Obtainium compatibility in the future:

  • Auto-detect any Forgejo host (e.g. through common API endpoints)
  • Don’t treat Codeberg == Forgejo or generally special in any way (focus on Forgejo as the software and treat any instance equally)
  • Add a User Agent so requests can be properly attributed to Obtainium (to allow for possible custom allowlisting)

@codefloe Hey, thank you for your response!

Just to be clear, I have no affiliation with Obtainium, I just use it in all of my open source projects as the distribution channel for testers.

I assume there is notheing I can do to get it working on in my project without the Obtainium project making some changes?

I’ve created an issue in the Obtainium repo: Obtainium hits rate limits on Codefloe · Issue #3212 · ImranR98/Obtainium · GitHub

There is a budget for unauthenticated requests, so it’s not that it’s blocked outright at the first try. Yet figuring out why it bursts this limit so quickly with you being the sole user triggering requests right now (presumably) would take quite some effort. Do you use some CI to trigger requests?

The points we listed are real quirks on the Obtainium side and some of these are real blockers for any Forgejo instance that isn’t Codeberg. Yes, they should be addressed on their end.

If we’d put custom workarounds into place to treat Obtainium special, it’s more likely they won’t address the underlying issues. And it would mean extra work on our end while actually not being the “problematic” part in this relationship.

Sorry to hear about these problems overall! It’s a complicated situation from your PoV, understandably. The actual fixes should happen on the Obtainium side from our point of view. This would also make them run more robust overall for any future request to any forge (e.g. the User Agent point).

All good, no worries, I’ll follow up with Obtainium. The fix clearly needs to be on their side.

No, we’re not using anything else. No idea why it trigges immediately. But I’ll just wait for the Obtainium fix and then get back to it.

I appreciate your help!