# Compatibility

> Can SILO replace MinIO? A user-facing index of 12 compatible improvements, 4 minor differences, and 8 changes to check when their conditions apply.

---

LLMS index: [llms.txt](/llms.txt)

---

**Most applications using standard S3 APIs can switch from MinIO to SILO without code changes.** Common S3 APIs, SigV4, SDK integration and object storage layouts carry over. Deployment, authorization and replicated state require the checks below: SILO is a **conditional drop-in replacement**.


- [🟢 12 compatible improvements](#compatible) — Normal usage needs no adaptation and gains capabilities or correctness fixes.
- [🔵 4 minor differences](#minor) — Mostly presentation, UI interaction and response information; usually no application changes.
- [🟠 8 conditional checks](#conditional) — When a condition applies, verify or adjust deployment, policies, tools or upgrade procedures.


**The current release baseline is 20261109.** Read the [20261109 upgrade requirements](/blog/release/silo-20261109/#upgrade) for batch-record boundaries, lock-domain rollout, mixed-version restore and S3 readiness checks. This index covers changes since the fork and identifies when each repair first shipped. The [component matrix](/compatibility/versions/) records the current stack and fixes absent from older versions.

## 20261109 release changes {#maintenance-20261109}

[Server 20261109](/compatibility/server/#maintenance-20261109) coordinates cross-pool lifecycle expiry and two-phase native restore, enforces cross-pool Object Lock on bulk S3 `DeleteObjects` and target-side replicated `DELETE`, binds batch jobs to the submitter's live permissions with a versioned manifest gate, applies IAM edits to persisted records, and aligns single-pool erasure-set lock domains. It ships Helm chart `7.0.4`, matches UBI CA bundles in `-distroless` images, embeds [Console 2.7.0](/compatibility/console/#release-270) (ten UI languages with Arabic RTL, usage-worker TLS/budget/shutdown fixes, and container CA/`/tmp` support), and pairs with [mcli 20261109](/compatibility/mcli/#release-20261109) (dry-run, move-safety, CORS, and region repairs).

## 20261026 release changes {#maintenance-20261026}

The [Server 20261026](/compatibility/server/#maintenance-20261026) adds fixes for LDAP long-DN login, built-in policy Reset, live bucket inventory, versioned lifecycle expiration, multipart replication, and multi-pool deletion. Existing read-quorum and healing rules remain unchanged; see the [component matrix](/compatibility/versions/#server-20261026) for lease-loss, partial-metadata, and pre-existing inconsistency boundaries.

## 20261018 release {#october-2026}

[Server 20261026](/blog/release/silo-20261026/) retains the fixes delivered in [20261018](/blog/release/silo-20261018/). Upgrade checks cover Object Lock, IAM Admin authorization, ordinary LIST recovery, retirement of strict multipart listing and OIDC/JWK key limits; see [Server compatibility](/compatibility/server/#october-2026). The strict-mode prerequisites below apply only to the optional mode in Server 20260916.


## 🟢 Compatible improvements: 12 categories {#compatible}

Normal usage needs no migration work for these capabilities. Dependencies on old bugs, mixed versions or damaged historical state are covered by the orange entries.

| Category and change                                                                                                                                                                 | When it applies                                                   | Impact and action                                                                        | Details                                                                                                                              |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| <span id="g01"></span>**G01 · Full Web administration**<br>Restores full Web management of buckets, objects, users, policies and the system.                                        | Managing a deployment in a browser.                               | More capable administration; ordinary S3 applications need no changes.                   | [Console features](/compatibility/console/#scope)                                                                                    |
| <span id="g02"></span>**G02 · Ten-language UI and text preview**<br>Adds ten UI languages (including Arabic RTL in Console 2.7.0 / Server 20261109) and bounded, safe text preview. | Switching language or previewing text objects.                    | Changes the Console experience, not stored object content.                               | [Languages](/compatibility/console/#i18n), [text preview](/blog/design/console-text-preview/)                                        |
| <span id="g03"></span>**G03 · Per-bucket CORS**<br>The existing CORS APIs now persist and enforce per-bucket cross-origin rules.                                                    | Browser cross-origin access with bucket CORS configured.          | Bucket rules override global CORS; object access still requires authorization.           | [CORS behavior](/blog/release/silo-20260903/#cors-trust)                                                                             |
| <span id="g04"></span>**G04 · Native health checks**<br>Adds `silo healthcheck` for container and operational probes.                                                               | Choosing to use the new probe command.                            | Existing HTTP health endpoints remain available.                                         | [Command and scope](/compatibility/feature/healthcheck/#command)                                                                     |
| <span id="g05"></span>**G05 · Client checksum audit**<br>Adds `mcli checksum verify` to read objects and verify checksums.                                                          | Explicitly running an integrity audit.                            | Read-only checks and reports; no object modification or repair.                          | [Audit command](/reference/minio-mc/mc-checksum-verify/#command-mc.checksum.verify)                                                  |
| <span id="g06"></span>**G06 · Upload and copy checksums**<br>Valid uploads, multipart completion and copies compute, retain and return checksums more accurately.                   | Using the affected upload or copy paths.                          | Better SDK interoperability; invalid requests are covered by [O04](#o04).                | [Multipart uploads](/blog/design/uploadpart-checksum/#decision), [S3 fixes](/blog/release/silo-20260903/#s3-correctness)             |
| <span id="g07"></span>**G07 · Encryption and compression fixes**<br>Corrects data and logical-size handling across SSE-C, KMS, compression and copying.                             | Using these encryption, compression or copy combinations.         | Fixes new requests; existing objects are unchanged.                                      | [SSE-C and old objects](/blog/design/ssec-replica-integrity/), [federated copies](/blog/design/federated-copy-object/)               |
| <span id="g08"></span>**G08 · Concurrent bucket configuration**<br>A shared metadata lock prevents concurrent bucket updates from overwriting each other.                           | Concurrent policy, lifecycle, encryption or other bucket updates. | More reliable administration with the same calling pattern.                              | [Shared configuration lock](/blog/release/silo-20260903/#bucket-metadata)                                                            |
| <span id="g09"></span>**G09 · Tag and Object Lock replication**<br>Replication preserves and orders tag, retention and lock state more accurately.                                  | Replicating or healing tags and Object Lock metadata.             | Reduces lost state and stale-event overwrites; see [O07](#o07) for mixed versions.       | [Tag ordering](/blog/design/replicated-tag-ordering/), [lock ordering](/blog/design/object-lock-replication-ordering/)               |
| <span id="g10"></span>**G10 · Pool migration and healing**<br>Rebalance, decommission and recovery handle tags, versions and delete markers more accurately.                        | Moving pools, healing or recovering replication.                  | Better metadata preservation and retries; historical anomalies still need inspection.    | [Multi-pool consistency](/blog/design/multi-pool-object-consistency/), [replication recovery](/blog/design/replication-reliability/) |
| <span id="g11"></span>**G11 · Notifications and streaming**<br>Fixes NATS/AMQP setting recognition and flushing of notification and Select streams.                                 | Using those notification targets or streaming APIs.               | More accurate configuration and event output; see [O03](#o03) for old database settings. | [Notification settings](/compatibility/server/#notify-audit), [stream flushing](/compatibility/server/#s3-behavior)                  |
| <span id="g12"></span>**G12 · Stability and resource cleanup**<br>Fixes concurrent collection, buffer ownership and connection cleanup.                                             | Concurrent I/O, metric collection or request cancellation.        | Prevents related crashes and resource leaks.                                             | [Read buffers](/compatibility/server/#s3-behavior), [runtime and metrics](/compatibility/server/#observability)                      |
{.silo-compatibility-table .wide .expand}

## 🔵 Minor differences: 4 categories {#minor}

Ordinary applications usually need no changes. Tools that hard-code product strings, metric meanings or response fields should still be checked.

| Category and change                                                                                                                                           | When it applies                                      | Impact and action                                                                             | Details                                                                                                                                                                                            |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span id="b01"></span>**B01 · Product identity**<br>Banners, logs, HTTP product identity and UI labels use SILO.                                              | Reading output or matching product names.            | Presentation changes; adapt name-matching scripts. Installation changes are in [O01](#o01).   | [Server identity](/compatibility/server/#identity), [client output](/compatibility/mcli/#identity)                                                                                                 |
| <span id="b02"></span>**B02 · Paginated Console listings**<br>Object listings use cursors, with sorting, filtering and selection limited to the current page. | Browsing, filtering or selecting objects in Console. | UI habits change; direct S3 application access does not.                                      | [Pagination boundaries](/compatibility/console/#pagination)                                                                                                                                        |
| <span id="b03"></span>**B03 · Richer monitoring and diagnostics**<br>Adds diagnostic metrics and corrects quota, replication counters and status meanings.    | Using affected metrics, dashboards or alerts.        | Metric namespaces remain; review the affected displays and alert rules.                       | [Metric changes](/compatibility/server/#observability), [Console metrics](/compatibility/console/#metrics)                                                                                         |
| <span id="b04"></span>**B04 · Additional response fields**<br>Some copy, multipart and Console responses include checksum or session fields.                  | Reading those API responses.                         | Standard clients usually handle them; parsers rejecting unknown fields belong in [O05](#o05). | [Multipart responses](/blog/design/complete-multipart-checksum-type/), [copy responses](/blog/design/copyobject-ssec-checksum-response/#impact), [Console API](/compatibility/console/#api-output) |
{.silo-compatibility-table .wide .expand}

## 🟠 Conditional checks: 8 categories {#conditional}

**If the condition applies, check the entry.**

| Category and change                                                                                                                                                                                                                    | When it applies                                                                                                                                                                                                                                                                                                     | Impact and action                                                                                                                                                                                                                                               | Details                                                                                                                                                                                                                                                                                                                     |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span id="o01"></span>**O01 · Installation and startup**<br>Artifacts become `silo` / `mcli`; verify services, images, directories and permissions.                                                                                    | Migrating MinIO packages, containers, systemd or Helm.                                                                                                                                                                                                                                                              | Administrators perform a deployment migration check; application code usually stays the same.                                                                                                                                                                   | [Containers](/compatibility/migration/#docker), [packages and accounts](/compatibility/binary/#layout), [client configuration](/compatibility/mcli/#naming)                                                                                                                                                                 |
| <span id="o02"></span>**O02 · Custom authorization policies**<br>Password changes, permanent version deletion, bucket writes and submitter-bound batch jobs (20261109) use corrected authorization rules.                              | Custom Allow/Deny rules, object ARNs granting bucket operations, batch jobs, or source-IP conditions.                                                                                                                                                                                                               | Effective permissions may change; verify policies, batch submitter grants and proxy trust.                                                                                                                                                                      | [Passwords](/compatibility/password-permissions/#migration), [version deletion](/compatibility/migration/#since-20260806), [bucket authorization](/blog/security/object-grant-bucket-reach/), [batch authorization](/administration/batch-framework/#silo-lifecycle), [proxy trust](/compatibility/server/#trusted-proxies) |
| <span id="o03"></span>**O03 · Older auth and notification settings**<br>Legacy authentication, database notifications and some TLS/environment-file usage need adjustment or validation.                                               | OIDC HMAC tokens, discrete legacy database settings, old proxies/TLS or unusual environment files.                                                                                                                                                                                                                  | Login, notifications or startup may fail; migrate the relevant configuration.                                                                                                                                                                                   | [OIDC algorithms](/compatibility/server/#auth-iam), [database connections](/blog/design/notify-url/#operator-remediation), [TLS](/blog/design/go127-tls-oidc-discovery/), [environment files](/blog/design/config-env-file/#compatibility)                                                                                  |
| <span id="o04"></span>**O04 · Programs relying on old bugs**<br>Validation, conditions, errors, exit codes and listing limits change on affected paths.                                                                                | Expecting invalid requests to succeed, `If-Match` to be ignored, or more than 1,000 multipart uploads per page when opting into Server 20260916 strict mode.                                                                                                                                                        | Check error handling, retries, pagination and final batch exit codes.                                                                                                                                                                                           | [Checksum errors](/blog/design/complete-multipart-checksum-errors/#impact), [conditional deletion](/blog/design/conditional-delete/), [multipart listing](/blog/design/list-multipart-uploads/#implementation-20260916), [CLI exit codes](/compatibility/mcli/#current-release)                                             |
| <span id="o05"></span>**O05 · Custom clients and administration tools**<br>Private APIs, signed-header coverage, Console automation and Go package paths have changed.                                                                 | Using `ReadMultiple`, custom signing, strict parsing, Go embedding or customized Console clients.                                                                                                                                                                                                                   | Verify custom integrations and builds separately; ordinary S3 SDKs do not use the private storage API.                                                                                                                                                          | [Private APIs](/compatibility/server/#storage-rest), [signing](/blog/design/signed-header-coverage/#impact), [Console API](/compatibility/console/#api-output), [Go modules](/compatibility/server/#source-compatibility)                                                                                                   |
| <span id="o06"></span>**O06 · Multi-pool operations and retired strict multipart mode**<br>Multi-pool writes, deletes, lifecycle expiry and bulk version purges verify metadata; the optional 20260916 strict listing mode is retired. | Multi-pool conditional writes (`CreateMultipartUpload` [#292](https://github.com/pgsty/silo/pull/292)), ILM expiry ([#278](https://github.com/pgsty/silo/pull/278)), locked `DeleteObjects` ([`6ef3a52fc`](https://github.com/pgsty/silo/commit/6ef3a52fc)), or upgrading a deployment that enabled strict listing. | Unreadable pool metadata can return `503` while `GET` works, and locked bulk purges run sequentially in 20261109. Server 20261018 and later ignore the strict switch with a warning; durable listing and strict cancellation are unavailable.                   | [Multi-pool conditions](/blog/design/multi-pool-object-consistency/#conditions), [multi-pool lifecycle](/blog/design/multi-pool-lifecycle-expiry/), [current multipart contract](/blog/design/list-multipart-uploads/#decision-20261018)                                                                                    |
| <span id="o07"></span>**O07 · Replication, mixed versions and rollback**<br>IAM revocations, bucket-configuration tombstones, lock domains, restores and batch records require coordinated upgrades and recovery.                      | Multiple sites, shared IAM, 18+-host single-pool layouts, active restores/batch jobs, mixed versions or downgrades.                                                                                                                                                                                                 | Drain and stop 18+-host single-pool clusters before starting 20261109; mixed-version peers make `POST ?restore` return `503`; 20261026 rejects submitter-bound v2 batch manifests. Preserve a complete recovery point and verify all peers before rolling back. | [IAM upgrades](/operations/replication/iam-upgrade/), [configuration convergence](/blog/design/bucket-metadata-convergence/#rollout), [batch upgrade](/administration/batch-framework/#upgrade-20261109), [rollback scope](/compatibility/migration/#rollback)                                                              |
| <span id="o08"></span>**O08 · Self-update and upstream online services**<br>In-place updates, SUBNET and upstream hosted-support integrations are disabled.                                                                            | Using `admin update`, `mcli update` or MinIO online support workflows.                                                                                                                                                                                                                                              | Upgrade through packages, images or orchestration; ordinary S3 access is unaffected by this change.                                                                                                                                                             | [Server updates](/compatibility/server/#offline-services), [client updates](/compatibility/mcli/#self-update), [SUBNET](/compatibility/mcli/#subnet)                                                                                                                                                                        |
{.silo-compatibility-table .wide .expand}

## Comparison scope and release boundaries {#scope}

The server comparison starts at upstream source [`27742d469462`](https://github.com/minio/minio/commit/27742d469462e1561c776f88ca7a1f26816d69e2), dated **2025-12-03** (after the final upstream release tag on **2025-10-15**). See the [Console](/compatibility/console/) and [client](/compatibility/mcli/) pages for their separate baselines. This index covers APIs, capabilities, observable behavior and operations; one fix can affect several scenarios.

Upstream MinIO/MC compatibility is **best effort**. The supported, release-tested combination is **SILO + SILO Console + mcli + silo-pkg**. Retained protocols, environment variables and storage layouts do not guarantee arbitrary upstream mixed-version operation or downgrades. The [detailed server audit](/compatibility/server/) retains historical baselines and individual findings; the [component matrix](/compatibility/versions/) lists published component versions across the stack.

The experimental [access-frequency pool tiering](/compatibility/access-tiering-removal/) that was added and later withdrawn is outside these 24 categories: it was not an upstream feature at the fork and never shipped in a public Server release: 20260903 predates it, and it was removed before 20260916. Ordinary lifecycle expiration, remote tiering, rebalance and pool decommission remain available.

For migration, select the relevant [O01–O08 conditions](#conditional), then follow the [migration guide](/compatibility/migration/).

---

Section pages:

- [Component Versions](/compatibility/versions/): SILO 20261109 released components, Console 2.7.0, mcli 20261109, silo-pkg 3.16.0, KES 20261026, and upgrade boundaries.
- [Password Permissions](/compatibility/password-permissions/): Version boundaries and migration for the ChangeMyPassword and CreateUser policy split.
- [Access-Tiering Removal](/compatibility/access-tiering-removal/): Why the opt-in GET-frequency pool-tiering feature was removed and how to migrate intermediate builds that contained it.
- [Migrate from MinIO to Silo](/compatibility/migration/): A single-node migration case, consistent backups, container cutover, data verification, and recovery limits.
- [Silo vs. MinIO Server Compatibility](/compatibility/server/): A code-verified compatibility audit of the Silo server fork: binaries, configuration, S3 and admin behavior, storage internals, packaging, containers, and Helm.
- [MCLI Client Compatibility Notes](/compatibility/mcli/): Compatibility, behavior changes, installation, and the current pgsty/mc release
- [Native Package Migration](/compatibility/binary/): How the silo RPM/DEB packages differ from the minio packages: file layout, service account, takeover semantics, and caveats.
- [Console Compatibility Notes](/compatibility/console/): Differences between SILO Console and the upstream MinIO Console
- [Feature Notes](/compatibility/feature/): Design notes for capabilities Silo adds beyond upstream MinIO — written down before they ship.
