# MinIO AIStor EDGE.2026-09-29T03-24-19Z

Released: 2026-09-29

Ships the redesigned MinIO AIStor Console, license-based feature gating, Tables record expiration, and ILM and batch
compression, with fixes across replication, IAM, Tables and healing. Read [Behaviour Changes](#behaviour-changes) before
upgrading: server logs move to Iceberg tables and the existing log history is deleted on first start.

## Downloads

### Container Images

- `quay.io/minio/aistor/minio:EDGE.2026-09-29T03-24-19Z`
- `quay.io/minio/aistor/minio:edge`
- `quay.io/minio/aistor/minio:EDGE.2026-09-29T03-24-19Z.fips`

### Binaries and Packages

#### darwin-amd64

- [minio](https://dl.min.io/aistor/minio/edge/darwin-amd64/archive/minio)
- [minio.EDGE.2026-09-29T03-24-19Z](https://dl.min.io/aistor/minio/edge/darwin-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z)
- [minio.EDGE.2026-09-29T03-24-19Z.sha256sum](https://dl.min.io/aistor/minio/edge/darwin-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.sha256sum)
- [minio.sha256sum](https://dl.min.io/aistor/minio/edge/darwin-amd64/archive/minio.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.asc](https://dl.min.io/aistor/minio/edge/darwin-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.asc)
- [minio.EDGE.2026-09-29T03-24-19Z.minisig](https://dl.min.io/aistor/minio/edge/darwin-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.minisig)
- [minio.asc](https://dl.min.io/aistor/minio/edge/darwin-amd64/archive/minio.asc)
- [minio.minisig](https://dl.min.io/aistor/minio/edge/darwin-amd64/archive/minio.minisig)

#### darwin-arm64

- [minio](https://dl.min.io/aistor/minio/edge/darwin-arm64/archive/minio)
- [minio.EDGE.2026-09-29T03-24-19Z](https://dl.min.io/aistor/minio/edge/darwin-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z)
- [minio.EDGE.2026-09-29T03-24-19Z.sha256sum](https://dl.min.io/aistor/minio/edge/darwin-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.sha256sum)
- [minio.sha256sum](https://dl.min.io/aistor/minio/edge/darwin-arm64/archive/minio.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.asc](https://dl.min.io/aistor/minio/edge/darwin-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.asc)
- [minio.EDGE.2026-09-29T03-24-19Z.minisig](https://dl.min.io/aistor/minio/edge/darwin-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.minisig)
- [minio.asc](https://dl.min.io/aistor/minio/edge/darwin-arm64/archive/minio.asc)
- [minio.minisig](https://dl.min.io/aistor/minio/edge/darwin-arm64/archive/minio.minisig)

#### linux-amd64

- [minio](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio)
- [minio.EDGE.2026-09-29T03-24-19Z](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z)
- [minio.EDGE.2026-09-29T03-24-19Z.rdma](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.rdma)
- [minio.rdma](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.rdma)
- [aistor-20260929032419.0.0-1.x86_64.rpm.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor-20260929032419.0.0-1.x86_64.rpm.sha256sum)
- [aistor_20260929032419.0.0_amd64.deb.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor_20260929032419.0.0_amd64.deb.sha256sum)
- [aistor_20260929032419.0.0_x86_64.apk.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor_20260929032419.0.0_x86_64.apk.sha256sum)
- [minio-20260929032419.0.0-1.x86_64.rpm.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio-20260929032419.0.0-1.x86_64.rpm.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.rdma.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.rdma.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.sha256sum)
- [minio.rdma.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.rdma.sha256sum)
- [minio.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.sha256sum)
- [minio_20260929032419.0.0_amd64.deb.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio_20260929032419.0.0_amd64.deb.sha256sum)
- [minio_20260929032419.0.0_x86_64.apk.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio_20260929032419.0.0_x86_64.apk.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.asc](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.asc)
- [minio.EDGE.2026-09-29T03-24-19Z.minisig](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.minisig)
- [minio.EDGE.2026-09-29T03-24-19Z.rdma.asc](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.rdma.asc)
- [minio.EDGE.2026-09-29T03-24-19Z.rdma.minisig](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.rdma.minisig)
- [minio.asc](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.asc)
- [minio.minisig](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.minisig)
- [minio.rdma.asc](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.rdma.asc)
- [minio.rdma.minisig](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.rdma.minisig)
- [aistor-20260929032419.0.0-1.x86_64.rpm](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor-20260929032419.0.0-1.x86_64.rpm)
- [aistor.apk](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor.apk)
- [aistor.deb](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor.deb)
- [aistor.rpm](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor.rpm)
- [aistor_20260929032419.0.0_amd64.deb](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor_20260929032419.0.0_amd64.deb)
- [aistor_20260929032419.0.0_x86_64.apk](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/aistor_20260929032419.0.0_x86_64.apk)
- [minio-20260929032419.0.0-1.x86_64.rpm](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio-20260929032419.0.0-1.x86_64.rpm)
- [minio.apk](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.apk)
- [minio.deb](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.deb)
- [minio.rdma-20260929032419.0.0-1.x86_64.rpm](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.rdma-20260929032419.0.0-1.x86_64.rpm)
- [minio.rdma_20260929032419.0.0_amd64.deb](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.rdma_20260929032419.0.0_amd64.deb)
- [minio.rdma_20260929032419.0.0_x86_64.apk](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.rdma_20260929032419.0.0_x86_64.apk)
- [minio.rpm](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.rpm)
- [minio_20260929032419.0.0_amd64.deb](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio_20260929032419.0.0_amd64.deb)
- [minio_20260929032419.0.0_x86_64.apk](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio_20260929032419.0.0_x86_64.apk)

#### linux-amd64 (FIPS)

- [minio.EDGE.2026-09-29T03-24-19Z.fips](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.fips)
- [minio.fips](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.fips)
- [minio.EDGE.2026-09-29T03-24-19Z.fips.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.fips.sha256sum)
- [minio.fips.sha256sum](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.fips.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.fips.asc](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.fips.asc)
- [minio.EDGE.2026-09-29T03-24-19Z.fips.minisig](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.EDGE.2026-09-29T03-24-19Z.fips.minisig)
- [minio.fips.asc](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.fips.asc)
- [minio.fips.minisig](https://dl.min.io/aistor/minio/edge/linux-amd64/archive/minio.fips.minisig)

#### linux-arm64

- [minio](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio)
- [minio.EDGE.2026-09-29T03-24-19Z](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z)
- [minio.EDGE.2026-09-29T03-24-19Z.rdma](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.rdma)
- [minio.rdma](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.rdma)
- [aistor-20260929032419.0.0-1.aarch64.rpm.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor-20260929032419.0.0-1.aarch64.rpm.sha256sum)
- [aistor_20260929032419.0.0_aarch64.apk.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor_20260929032419.0.0_aarch64.apk.sha256sum)
- [aistor_20260929032419.0.0_arm64.deb.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor_20260929032419.0.0_arm64.deb.sha256sum)
- [minio-20260929032419.0.0-1.aarch64.rpm.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio-20260929032419.0.0-1.aarch64.rpm.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.rdma.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.rdma.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.sha256sum)
- [minio.rdma.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.rdma.sha256sum)
- [minio.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.sha256sum)
- [minio_20260929032419.0.0_aarch64.apk.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio_20260929032419.0.0_aarch64.apk.sha256sum)
- [minio_20260929032419.0.0_arm64.deb.sha256sum](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio_20260929032419.0.0_arm64.deb.sha256sum)
- [minio.EDGE.2026-09-29T03-24-19Z.asc](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.asc)
- [minio.EDGE.2026-09-29T03-24-19Z.minisig](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.minisig)
- [minio.EDGE.2026-09-29T03-24-19Z.rdma.asc](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.rdma.asc)
- [minio.EDGE.2026-09-29T03-24-19Z.rdma.minisig](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.EDGE.2026-09-29T03-24-19Z.rdma.minisig)
- [minio.asc](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.asc)
- [minio.minisig](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.minisig)
- [minio.rdma.asc](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.rdma.asc)
- [minio.rdma.minisig](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.rdma.minisig)
- [aistor-20260929032419.0.0-1.aarch64.rpm](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor-20260929032419.0.0-1.aarch64.rpm)
- [aistor.apk](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor.apk)
- [aistor.deb](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor.deb)
- [aistor.rpm](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor.rpm)
- [aistor_20260929032419.0.0_aarch64.apk](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor_20260929032419.0.0_aarch64.apk)
- [aistor_20260929032419.0.0_arm64.deb](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/aistor_20260929032419.0.0_arm64.deb)
- [minio-20260929032419.0.0-1.aarch64.rpm](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio-20260929032419.0.0-1.aarch64.rpm)
- [minio.apk](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.apk)
- [minio.deb](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.deb)
- [minio.rdma-20260929032419.0.0-1.aarch64.rpm](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.rdma-20260929032419.0.0-1.aarch64.rpm)
- [minio.rdma_20260929032419.0.0_aarch64.apk](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.rdma_20260929032419.0.0_aarch64.apk)
- [minio.rdma_20260929032419.0.0_arm64.deb](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.rdma_20260929032419.0.0_arm64.deb)
- [minio.rpm](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio.rpm)
- [minio_20260929032419.0.0_aarch64.apk](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio_20260929032419.0.0_aarch64.apk)
- [minio_20260929032419.0.0_arm64.deb](https://dl.min.io/aistor/minio/edge/linux-arm64/archive/minio_20260929032419.0.0_arm64.deb)

#### windows-amd64

- [minio.exe](https://dl.min.io/aistor/minio/edge/windows-amd64/archive/minio.exe)
- [minio.exe.EDGE.2026-09-29T03-24-19Z](https://dl.min.io/aistor/minio/edge/windows-amd64/archive/minio.exe.EDGE.2026-09-29T03-24-19Z)
- [minio.exe.EDGE.2026-09-29T03-24-19Z.sha256sum](https://dl.min.io/aistor/minio/edge/windows-amd64/archive/minio.exe.EDGE.2026-09-29T03-24-19Z.sha256sum)
- [minio.exe.sha256sum](https://dl.min.io/aistor/minio/edge/windows-amd64/archive/minio.exe.sha256sum)
- [minio.exe.EDGE.2026-09-29T03-24-19Z.asc](https://dl.min.io/aistor/minio/edge/windows-amd64/archive/minio.exe.EDGE.2026-09-29T03-24-19Z.asc)
- [minio.exe.EDGE.2026-09-29T03-24-19Z.minisig](https://dl.min.io/aistor/minio/edge/windows-amd64/archive/minio.exe.EDGE.2026-09-29T03-24-19Z.minisig)
- [minio.exe.asc](https://dl.min.io/aistor/minio/edge/windows-amd64/archive/minio.exe.asc)
- [minio.exe.minisig](https://dl.min.io/aistor/minio/edge/windows-amd64/archive/minio.exe.minisig)

## New Features

### Console

- The MinIO AIStor Console has a new look, built on the shadcn/ui component library. (f1d023b)
- The Dashboard is now an Overview built around a capacity forecast. It shows usage, growth and a projected fill date.
  (#7563)
- The sidebar is reorganized. A Data section groups Objects, Tables and Memory, and the profile menu moves to the sidebar
  footer. (#7688)

### Tables

- Record expiration deletes rows older than a per-table retention period. It is off by default; turn it on with
  `tables record_expiration_enabled` (`MINIO_TABLES_RECORD_EXPIRATION_ENABLED`). (#7507)
- You can now create, list, update, rename and drop Iceberg catalog views, through the catalog API and the Console. (#7240)
- The Iceberg REST catalog accepts bearer tokens from the configured OpenID provider. Query engines such as StarRocks and
  Trino that forward the user's token no longer need to call `AssumeRoleWithWebIdentity` first. (#7228)
- The new Iceberg REST `loadCredentials` endpoint lets clients refresh vended credentials without reloading the table.
  (#7652)
- The `aistor` system warehouse now has per-warehouse `tables` and `table_annotations` system tables, so you can query
  table tags and annotations with SQL. (#7681)
- Table annotation writes accept `If-Match` and `If-None-Match: *`, and return `PreconditionFailed` when the condition
  fails. (#7702)
- Warehouses and tables accept up to 50 tags each, up from 10, matching AWS S3 Tables. (#7436)
- `ListWarehouses` now returns each warehouse's UUID. (#7661)
- You can now set bucket quotas on Tables warehouse buckets. (#7085)
- Tables replication lag tracking: the new `tables/replication-lag` admin API and the Console show per-table lag between
  the primary and the replica. (#7408)
- The new `POST /minio/admin/v4/tables/primary` admin API resolves a tied Tables replication role in one step. (#7266)

### ILM and Batch

- You can now compress or recompress existing objects with an ILM compression rule or a new `compress` batch job. Both
  can filter by prefix, size, age and tag. (#6743)
- Lifecycle expiration deletions are limited per node by the new `ilm expiration_rate` setting. See
  [Behaviour Changes](#behaviour-changes). (#7169)

### IAM

- `AccessDenied` responses now name the user, action and resource, and say which policy or plugin caused the denial.
  (#7016)
- The new `admin:PolicyName` condition key lets a delegated admin create, delete, read and attach only named policies.
  (#7690)
- Memory agents can now have named IAM policies and an inline policy attached, from the admin API and the Console.
  (#7646)

### Logging, Events and Metrics

- New `exclude_apis` (log and audit queues) and `exclude_events` (`bucket_event_queue`) keys drop matching records,
  counted by the new `minio_logs_filter_dropped_total` metric. (#6699)
- The new `exclude_buckets` key on the same queues drops records for the listed buckets. (#7402)
- The Kafka log and audit target now logs a warning that names each broker refusing connections, even while other
  brokers keep the target online. (#7316)
- Realtime runtime metrics now report server uptime. (#7229)

### Configuration

- `config.yaml` has new sections:
  - `kms` (#6718)
  - `apiServer`, covering every `api` key including CORS (#6835)
  - `openSharing` (Delta Sharing), `systemInventory` and `mcp` (#6866)
  - `systemLog`, `alert`, `subnet`, `callhome` and `telemetry` (#6852)
- With extended object naming (`MINIO_OBJECT_NAMING=extended`), object names can be up to 4096 bytes, up from 1024.
  (#6943)

### Admin and S3 API

- The `capacity-forecast` admin API accepts `window=<days>` and `history=true`. (#7555)
- Snowball auto-extract uploads verify each archive entry against its `x-amz-checksum-*` metadata and reject entries that
  do not match. (#7415)

## Performance Improvements

- ListBuckets and account info are faster and use much less memory for users with many buckets or group policies.
  (#7254)
- Streaming-signed (`aws-chunked`) PutObject and UploadPart requests use less server memory. (#6950)
- Sorted object listings do less disk work per page. (#7207)
- Tables unreferenced-file removal skips tables with no writes since their last run, up to
  `tables unreferenced_file_removal_max_interval` (default `168h`). (#7391)

## Bug Fixes

### Replication

- A resync no longer re-queues delete markers that were already replicated, and no longer sends the same object or
  delete to a target more than once. (#7125)
- Bucket, site and batch replication to MinIO AIStor targets now uses MinIO AIStor's upload limits, so large multipart
  parts are no longer rejected. (#7145)
- A delete marker that fails to reach an upgraded MinIO AIStor target now stays pending instead of being marked as
  replicated. (#7100)
- Delete markers now converge across three or more replication targets instead of being replicated again indefinitely.
  (#7220)
- Tracked delete replication no longer floods the error log with repeated or spurious errors. (#7347)
- Batch replication now keeps the source object's checksum on the target. (#7394)

### Site Replication

- Site-replication healing no longer re-enables replication rule settings that an operator turned off. The
  `mc admin replicate status` command reports those buckets as a config mismatch. (#7053)
- Replication rules keep their priority when site replication is reconfigured. (#7052)
- A deleted bucket, Tables warehouse or Memory bucket no longer comes back on peer sites through site-replication
  healing. (#7227, #7453)

### IAM and STS

- `AssumeRoleWithWebIdentity` and `AssumeRoleWithClientGrants` return `ExpiredToken` only for expired tokens. Other
  invalid tokens now return `InvalidIdentityToken` or `InvalidClientGrantsToken`. (#6845)
- A malformed `identity_tls` value is now rejected on save. A malformed stored value no longer disables the TLS STS API
  at startup. (#7008)
- The "session policy too large" error now states the limit that is actually enforced. (#7285)

### Tables and Delta Sharing

- A share created or updated while its tables were being dropped or changed could point at missing tables. (#7034)
- S3 listings of a warehouse bucket no longer show server-managed warehouse state, and direct S3 access to it returns
  `AccessDenied`. (#7235)
- Tables vended credentials are now issued to callers whose credentials carry an inline session policy. (#7448)
- Tables resync precondition failures now return 409 with specific `XMinioTablesResync*` error codes instead of 500.
  (#7645)
- Delta Sharing no longer returns rows removed by Iceberg merge-on-read deletes on UniForm tables. (#7625)
- Delta Sharing reads of UniForm tables with transform partitions (for example year or bucket) no longer return the
  transform result in place of the column's value. (#7476)
- API logs now include Tables bearer-token identities, table annotation and tag operations, bucket QoS requests and
  Memory requests. (#7552, #7462, #7469)

### Erasure Coding, Healing and Decommission

- A new cluster or pool expansion no longer hangs on first boot when the pool's first node is unavailable. The
  `bootstrapLeader` setting is deprecated and ignored. (#6394)
- An unversioned PutObject with `If-None-Match: *` could return 503 indefinitely after an earlier write missed quorum.
  (#7068)
- The heal audit log no longer reports an object that was deleted while queued as unhealed, and it keeps the real failure
  reason. (#7146)
- A decommission's final state is now shown on every node even when the drained pool has lost write quorum. Before this
  fix, other nodes kept reporting it as draining. (#7009)

### KMS and Encryption

- When a MinKMS node is unreachable, MinIO AIStor stops sending it requests until it passes a health check. This removes
  intermittent 30-second stalls on encrypted requests. (#7328)
- Objects uploaded through snowball auto-extract to SSE-S3 or SSE-KMS buckets could fail later reads with "Unable to
  decryptPartsChecksums". (#7233)
- Console KMS pages now work when the KMS uses a self-signed or private-CA certificate, and `aws:SourceIp` conditions
  apply to them. (#7708)

### Admin and Configuration

- Overlapping admin config changes could leave a node running an older configuration than the stored one. (#7021)
- The `api` settings `requests_max` and `cluster_deadline` now take effect when you set them with `mc admin config` or in
  `config.yaml`. Before this fix, only the environment variables worked. (#6835)
- Error log and alert queries returned the oldest records instead of the newest. (#6928)
- A license saved through SUBNET registration or automatic renewal is now applied on every node. (#7647)
- Startup now warns when a multi-NIC node address uses a different port from the node's first address. That port is
  ignored. (#7076)

### Batch, Inventory and QoS

- Inventory and catalog job output formats are now case-insensitive, and `compression: ON` is honoured in any letter
  case. (#7304, #7327)
- A leftover system-inventory lease could make a bucket skip inventory runs for up to an hour. (#6311)
- Prefix-scoped QoS rules on `s3.ListObjectsV1` now take effect. (#7263)
- A QoS config with duplicate rule IDs or evaluation orders is now rejected on save. Editing only a rule's label or
  order keeps its statistics. (#7579)

### S3 API and RDMA

- Snowball auto-extract uploads could report success when one of the archive entries was denied. (6bd0348)
- Internode RDMA writes no longer stall on nodes that take more than their share of traffic. (#7293, b4fd953)
- RDMA no longer logs routine storage errors at ERROR level, and write failures return the real error. (#7212)

## Behaviour Changes

- **Logs move to Iceberg tables.** API, error and audit logs now go to `aistor._system.{api_log,error_log,audit_log}`.
  The previous log storage is deleted on first start, and the `drive_limit` and `flush_*` keys are ignored. (#7638)
- **Features are gated by license.** Unlicensed features return `XMinioFeatureNotLicensed` (403). A license issued before
  per-feature licensing keeps Objects and Tables, but not Memory. (#6496)
- **Batch bucket inventory is removed.** The `minio-inventory` bucket APIs and the `/inventory` admin endpoints now reject
  requests. (#6184)
- **New bitrot default.** New writes use `xxh3S` instead of `highwayhash256S`, and `erasure bitrot_algo` accepts a new
  `crc64nvme` option. Existing data keeps its algorithm. (#6937)
- **ILM expiration is rate-limited.** Expiration deletions default to 1000 per second per node. Set `ilm expiration_rate`
  (`MINIO_ILM_EXPIRATION_RATE`) to `0` to remove the limit. (#7169)
- **ILM delete markers are no longer replicated.** Each site applies its own lifecycle rules. Deletes issued by users
  still replicate. (#6875)
- **Unsigned `x-amz-*` headers are rejected.** As on AWS S3, a SigV4 request that sends an `x-amz-*` header outside
  `SignedHeaders` gets 403 `AccessDenied`; `x-amz-content-sha256` is exempt. (#7691)
- **Listing checksums follow AWS S3.** ListObjects V1 and ListObjectVersions always report `ChecksumAlgorithm`, and
  ListObjectsV2 `metadata=true` returns checksum values only to callers with `s3:GetObject`. (#7253)
- **Built-in policies cannot be deleted.** Deleting `readwrite` or `consoleAdmin` fails with `XMinioIAMPolicyBuiltin`,
  even when the policy is overridden. (#7505)
- **`api root_access` changes need `admin:SetRootAccess`.** Root credentials and credentials derived from root can no
  longer make the change. (#7463)
- **Memory agents need `memory:CreateAgent`.** `PutAgent` now only creates agents, together with their credential and
  policy; use `PUT ...?update` to change one. (#7422)
- **`config.yaml` keys that were ignored now take effect.** These include `memLimit`, `serverUrl`, `domain`,
  `ntpServer`, `browser.*` and `network.*`. (#7218)
- **S3 deletes of catalog-managed table files are refused.** Deleting table data still works for purge flows. (#7391)
- **Asynchronous GPU-direct RDMA is removed.** `MINIO_RDMA_ASYNC` and `MINIO_RDMA_POLL_INTERVAL_US` no longer apply, and
  the NVIDIA cuObject libraries are no longer bundled. (#7239)

## Security Updates

- Users with the built-in `readonly` or `consolereadonly` policy could be granted `admin:CreateUser` by another policy
  despite the built-in Deny. (#6910)
- `AssumeRole` now honours an explicit Deny on `sts:AssumeRole`, including conditions on `DurationSeconds`. (#7694)
- Token revocation now takes effect on every node at once, including credentials derived from the revoked session.
  (#7695)
- A Tables grant such as `s3tables:GetTableData` could also allow S3 access to objects in an ordinary bucket with a
  matching name. (#7698)
- `s3tables:*` policy conditions such as `s3tables:namespace` now use only values that the server resolves. A caller can
  no longer satisfy them with a query parameter or header. (#7226)
- A user with an explicit Deny on `admin:ChangeMyPassword` can no longer change their password through the AddUser admin
  API. (#7433)
- Console sessions are bound to the deployment that issued them. Cross-origin Console login and logout requests are
  refused. (#7272)
- Config inspect bundles no longer contain secrets such as the OpenID `clientSecret`, the LDAP `lookupBindPassword`, or
  notification `authToken` values in plain text. (#6718)
- Dependency updates:
  - `google.golang.org/grpc` v1.83.2:
    [GO-2026-6348](https://pkg.go.dev/vuln/GO-2026-6348), [GO-2026-6441](https://pkg.go.dev/vuln/GO-2026-6441),
    [GO-2026-6443](https://pkg.go.dev/vuln/GO-2026-6443) (#7319)
  - `github.com/rabbitmq/amqp091-go` v1.13.0: [GO-2026-6372](https://pkg.go.dev/vuln/GO-2026-6372) (#7319)
  - `golang.org/x/crypto` v0.56.0: [GO-2026-6354](https://pkg.go.dev/vuln/GO-2026-6354) / CVE-2026-78662 (#7151)

## Security & Compliance

The software bill of materials for this release, generated from its Go module graph:

- [sbom-EDGE.2026-09-29T03-24-19Z.spdx.json](sbom-EDGE.2026-09-29T03-24-19Z.spdx.json)
  (SPDX)
- [sbom-EDGE.2026-09-29T03-24-19Z.cyclonedx.json](sbom-EDGE.2026-09-29T03-24-19Z.cyclonedx.json)
  (CycloneDX)
- [go-modules-EDGE.2026-09-29T03-24-19Z.txt](go-modules-EDGE.2026-09-29T03-24-19Z.txt)
  (Go module list)

## Upgrade Instructions

This is an EDGE release for testing new features before they reach a RELEASE build.

Before you upgrade:

- **Export any log history you need.** The first start deletes the stored API log table, the error log files and
  `audit.log`. New records go to `aistor._system.*`. (#7638)
- **Check your license.** Call the new `GET /minio/admin/v4/licensed-features` admin API. If you use Memory on an
  older license, get an updated license from SUBNET before upgrading. (#6496)
- **Review your `config.yaml`.** Settings that were ignored before now take effect, including `memLimit`, `serverUrl`,
  `api requests_max` and `api cluster_deadline`. (#7218, #6835)
- **Check automation that depends on removed or changed APIs.** This covers batch bucket inventory, `PutAgent` for
  updates, deleting built-in policies, and SigV4 clients that send unsigned `x-amz-*` headers. (#6184, #7422, #7505,
  #7691)
- **Plan for large expiration backlogs.** If you rely on ILM clearing a backlog faster than 1000 deletions per second per
  node, raise `ilm expiration_rate` or set it to `0`. (#7169)
- **Expect Console users to sign in again.** Existing Console sessions end on upgrade. (#7272)

New configuration keys:

| Subsystem                                                           | Key                                                                       |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `ilm`                                                               | `expiration_rate`                                                         |
| `tables`                                                            | `record_expiration_enabled`, `unreferenced_file_removal_max_interval`     |
| `log_api_queue`, `log_audit_queue`, `audit_event_queue`             | `exclude_apis`, `exclude_buckets`                                         |
| `bucket_event_queue`                                                | `exclude_events`, `exclude_buckets`                                       |
| `erasure`                                                           | `bitrot_algo` accepts `crc64nvme`                                         |

For help, contact MinIO AIStor support through [SUBNET](https://subnet.min.io).
