Pain Point

MinIO Deletion Inconsistency

Long-standing class of MinIO bugs where DELETE operations produce visible state that diverges from the AWS S3 API contract. The most-cited example: **directories (CommonPrefixes) continue appearing in `ListObjects` results even after every object under them has been deleted** — inconsistent with AWS S3's behavior where an empty prefix simply doesn't appear. Other reports in the same class: **object-expiration lifecycle rules that don't actually reclaim disk space** (reported on RELEASE.2025-02-03 and persisting through RELEASE.2025-05-24), and **buckets whose contents disappear arbitrarily** — community-reported losses that the project never fully reproduced before going into maintenance mode.

3 connections

Definition

What it is

Long-standing class of MinIO bugs where DELETE operations produce visible state that diverges from the AWS S3 API contract. The most-cited example: **directories (CommonPrefixes) continue appearing in `ListObjects` results even after every object under them has been deleted** — inconsistent with AWS S3's behavior where an empty prefix simply doesn't appear. Other reports in the same class: **object-expiration lifecycle rules that don't actually reclaim disk space** (reported on RELEASE.2025-02-03 and persisting through RELEASE.2025-05-24), and **buckets whose contents disappear arbitrarily** — community-reported losses that the project never fully reproduced before going into maintenance mode.

Primary use cases

*(as a pain point — the workflows this breaks:)* applications that rely on `ListObjects` to detect "directory is empty" before proceeding with cleanup workflows, NextCloud and similar consumers that have shipped **MinIO-specific workarounds** for the CommonPrefixes-after-delete bug, lifecycle-rule-driven cost-control where expiring objects should reclaim disk but doesn't, disaster-recovery testing where bucket contents must be predictable, and any S3-API parity test suite that catches edge cases AWS handles but MinIO doesn't.

Recent developments

Latest signals
  • CommonPrefixes-after-delete bug is the canonical example (issue #17810). Directories (CommonPrefixes) continue to be shown even after the underlying objects are deleted — inconsistent with the AWS S3 API. NextCloud and similar consumers had to develop MinIO-specific workarounds. Per GitHub — minio/minio issue #17810.
  • Object expiration not freeing disk space (issue #21353). Reported as still occurring after upgrading from RELEASE.2025-02-03 to RELEASE.2025-05-24 — lifecycle rules ran, objects appeared expired, but on-disk space wasn't reclaimed. Per GitHub — minio/minio issue #21353.
  • Bucket contents disappearing arbitrarily — long-standing community concern. A 2022 discussion thread (#14392) reports MinIO deleting bucket contents arbitrarily; subsequent threads through 2024-2025 continue to surface variations of the same pattern. Per GitHub — minio/minio discussion #14392.
  • MinIO archived April 25, 2026 — bug-fix line effectively ended. With the official MinIO open-source repository archived, ongoing fixes for these deletion-semantics bugs are unlikely from the original maintainer. Per Vonng — MinIO Is Dead, Long Live MinIO.
  • pgsty/minio fork picks up CVEs but not behavioral bugs. The community fork at pgsty/minio backports security patches and continues binary distribution, but is explicitly NOT closing the deletion-semantics-divergence bugs as new feature work — operators choose MinIO knowing these issues persist. Per GitHub — minio/minio Maintenance Mode #21714.

Connections 3

Outbound 3
scoped_to1
constrained_by1