TL;DR
max_snapshot_age, min_snapshots_to_keep, and target_size_mb have been removed from API responses across all R2 Catalog endpoints.7d, 3.00, 128) to infer omitted field values will now receive those fields without a fallback hint.target_size_mb-equivalent, value 128) have also been dropped from the two maintenance-configs write endpoints.---
What Changed
#### Behavior
Response schema defaults removed across all R2 Catalog endpoints
Three response properties lost their declared default values in 200 responses across every affected resource:
| Property | Former Default | Affected Resources |
|---|---|---|
| max_snapshot_age | 7d | All four paths |
| min_snapshots_to_keep | 3.00 | All four paths |
| target_size_mb | 128 | All four paths |
The affected paths are:
/accounts/{account_id}/r2-catalog/accounts/{account_id}/r2-catalog/{bucket_name}/accounts/{account_id}/r2-catalog/{bucket_name}/maintenance-configs/accounts/{account_id}/r2-catalog/{bucket_name}/namespaces/{namespace}/tables/{table_name}/maintenance-configsWhen a field has a declared schema default, OpenAPI-aware tooling (code generators, mock servers, validation libraries) can substitute that value when the field is absent from a response. Removing the default means that tooling will no longer perform that substitution automatically, and any generated client that baked in those defaults at build time may now behave differently from the live API.
Request body defaults removed from maintenance-configs write endpoints
On both maintenance-configs endpoints (bucket-level and table-level), a request body property — identified in the diff as an unnamed field with a former default of 128 — no longer carries a declared default. This affects how SDK generators and form-filling tools pre-populate request payloads. Clients that omit this field and expected the schema default to communicate the server's assumed value should now explicitly supply the intended value or consult updated documentation.
---
Who's Impacted
If you use an auto-generated SDK or client library built from the Cloudflare OpenAPI spec, you may find that fields previously populated by schema defaults (max_snapshot_age, min_snapshots_to_keep, target_size_mb) are now returned as null or absent in deserialized objects, depending on how your generator handles missing defaults.
If you write integration tests or contract tests that assert on default field values from the R2 Catalog API schema, those assertions will likely fail because the schema no longer declares those defaults as authoritative.
If you operate a mock server seeded from the Cloudflare API spec, responses for any of the four affected paths will no longer include the former defaults (7d, 3.00, 128) in mock payloads, which could cause downstream test environments to diverge from expected behavior.
If you submit maintenance configuration requests to either maintenance-configs endpoint without explicitly setting the target_size_mb-equivalent field, you can no longer rely on the schema to communicate what value the server will assume — explicit values in request bodies are now advisable.
---
Action Checklist
max_snapshot_age, min_snapshots_to_keep, or target_size_mb defaults were baked in at generation time.19ae998ee606) to pick up the schema changes.max_snapshot_age from R2 Catalog responses and ensure it handles a missing or null value without assuming 7d.min_snapshots_to_keep — code that assumed 3 (or 3.00) as a fallback should now define that fallback explicitly in application code.target_size_mb from responses; add explicit default handling (e.g., value ?? 128) if your application logic depends on a specific fallback.maintenance-configs endpoints and confirm that the unnamed request property (formerly defaulting to 128) is now set explicitly in all call sites./accounts/{account_id}/r2-catalog to remove or adjust the previously declared defaults./accounts/{account_id}/r2-catalog/{bucket_name} similarly./accounts/{account_id}/r2-catalog/{bucket_name}/maintenance-configs./accounts/{account_id}/r2-catalog/{bucket_name}/namespaces/{namespace}/tables/{table_name}/maintenance-configs.max_snapshot_age, min_snapshots_to_keep, or target_size_mb defaults and update expected values accordingly.7d, 3.00, 128) to reflect that these are no longer schema-declared.19ae998ee606 as the new baseline.---
Verification
_Last verified: 2026-02-24T16:58:09Z_