Skip to content

32bit support blocking improvements & needing help #63411

Description

@jospoortvliet

There are challenges around 32bit support, and while we added a warning to the setup checks in 2023 that 32bit support would be dropped, it's time to make a real decision. So, we are seeking input!

The short version

We still kind of support 32bit, but in practice it isn't working well. Meanwhile, maintaining it is blocking improvements to performance, security and scalability that our (overwhelmingly 64bit) users would benefit from. Unless some volunteers step up to maintain 32bit support and find workarounds for the issues below, we think we should phase it out, with the coming release the last one that maintains the current (limited) level of support.

32bit support is disappearing everywhere

  • 32bit support breaks hard after 2038, and PHP itself will likely drop 32bit support well before that. A proposal to add PHP language features that would help 32bit was denied years ago, with maintainers citing that PHP itself would drop 32bit "soon anyway".
  • many of the libraries we depend on are dropping or have dropped 32bit support already, leaving us unable to update for some, or keeping patches on top for others.
  • Most of the Linux distributions no longer support it either, neither do many third party apps and nextcloud packages.
  • 32bit affects Raspberry Pi 1 and 2. The popular NextcloudPi project supports Pi's only starting at the RaspberryPi 3B (which has 64 bit support).

We have recently invested quite some time and effort on fixing issues from our automated test coverage, work we will continue to put in to at least keep 32bit tests working.

We know that 32bit does still matter to some people: there are certainly still users running Nextcloud on Raspberry Pi 1/2, other dev boards, older NAS devices, and older routers. That's why we've kept it going this long, even though most contributors and customers have no need for it.

But we've had a warning about the state of 32bit support in the setup screen since 2023, and we think it's time to move on.

The cost of keeping it "supported"

Our current work to keep 32bit alive comes at a real cost.

  • We're stuck on older versions of dependencies that still work on 32bit (e.g. maennchen/zipstream), and can't upgrade to versions with fixes.
  • It blocks adoption of new tech we need, like snowflake IDs: PHP auto-converts big ints to floats on 32bit, losing precision; using them as strings instead just means PHP auto-converts them back to ints when used as array indices, breaking things either way.
  • A number of performance optimizations can't be applied because they would break on 32bit.
  • And of course, the time we spend fixing 32bit test issues can't be spend elsewhere.

Without intervention, this situation is getting worse as libraries are no longer maintained. This means more work spend on working around that instead of other bug fixes and improvements. Bringing 32bit support back up to a good level would already be a lot of work, and will become harder and harder.

What we're proposing

We're open to volunteers who want to keep 32bit alive: help find workarounds for the issues above, improve the current state of support, and help us figure out how to keep it working longer. But to be clear, this won't be easy.

If nobody steps up, we'll make the current reality official:

  • Starting with release 35 (Nextcloud Hub 2026 Summer), we'll add a warning that 32bit is unsupported going forward. We'll still aim to make 2026 Summer work correctly on 32bit, as the last officially supported release.
  • We will not immediately break 32bit support. To give a few months discuss and maybe change the plan, we will only really start merging library updates and apply improvements for performance starting near the end of the year.
  • Note that the Nextcloud Hub 2026 Summer release will get security updates for one year, until about October 2027.

That gives people still on 32bit hardware a bit over a year to move to another platform. In the meantime, our 64bit users will finally benefit from scalability and performance improvements that 32bit support has been blocking.

Interested in helping maintain 32bit support? Let us know here on github, we'd love to talk.

Metadata

Metadata

Assignees

No one assigned

    Labels

    0. Needs triagePending check for reproducibility or if it fits our roadmapenhancementfeature: 32bitsBug specific to 32bits architectures

    Projects

    Status
    Confirmed

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions