Skip to content

Release Notes

Latest Changes

Features

  • ✨ Add media_type to send and document validation errors under any JSON content type. PR #107 by @matblack81.
  • ✨ Add error_builder to replace the validation error body and its schema. PR #105 by @matblack81.

Fixes

  • 🐛 Fix HTTPStatus status codes in the OpenAPI schema on Python 3.10. PR #104 by @matblack81.

Docs

  • 📝 Document every option of the override on its own page. PR #115 by @matblack81.
  • 📝 Add the home page and quick start to the documentation site. PR #114 by @matblack81.
  • 📝 Publish the release notes as a page of the site. PR #113 by @matblack81.
  • 👷 Build and deploy the documentation site to GitHub Pages. PR #112 by @matblack81.
  • 📝 Document media_type in the README. PR #108 by @matblack81.
  • 📝 Add the error builder section and its known limitation. PR #106 by @matblack81.

Internal

  • ♻️ Document public parameters with Annotated and Doc. PR #111 by @matblack81.
  • ✅ Add tests for root_path and mounted apps. PR #110 by @matblack81.
  • ⬆️ Bump fastapi from 0.141.1 to 0.162.0. PR #109 by @matblack81.
  • 💡 Fix the snapshot regeneration command for new examples. PR #103 by @matblack81.
  • ✅ Snapshot the response codes of every example. PR #102 by @matblack81.
  • 🔥 Remove the leftover sync-pin markers from the workflows. PR #101 by @matblack81.
  • 👷 Install only the tests dependency group in the test workflows. PR #100 by @matblack81.
  • 🔧 Split the dev dependencies into a tests group. PR #99 by @matblack81.

1.2.4 (2026-10-26)

Docs

  • 🔧 Replace old GitHub username in release notes links. PR #92 by @matblack81.

Internal

1.2.3 (2026-10-16)

Internal

1.2.2 (2026-09-22)

Internal

1.2.1 (2026-08-12)

Internal

1.2.0 (2026-08-11)

Internal

  • ♻️ Remove unused labeled/unlabeled events and label-checker job from workflows. PR #72 by @matblack81.
  • ⬆️ Migrate the test suite from httpx to httpx2. PR #71 by @matblack81.
  • ♻️ Refactor workflows to use gh auth setup-git for improved authentication. PR #70 by @matblack81.
  • ♻️ Simplify patch_422_responses to match what get_openapi() actually produces. PR #69 by @matblack81.
  • ♻️ Refactor GitHub Actions to improve token usage and credential persistence. PR #68 by @matblack81.

1.1.1 (2026-08-08)

Fixes

  • 🐛 Fix orphaned validation schema components left in the OpenAPI output. PR #66 by @matblack81.

Docs

  • 📝 Clarify that patch_422_responses targets get_openapi() output. PR #58 by @matblack81.

Internal

  • 🐛 Fix release date defaulting to the date the script was imported. PR #65 by @matblack81.
  • 🐛 Type-check examples in pre-commit, matching the documented lint scope. PR #64 by @matblack81.
  • 📝 Clarify docstrings for the 422 no-op and validation ref naming. PR #63 by @matblack81.
  • ✅ Add test to ensure overriding validation error ignores subsequent calls with different args. PR #62 by @matblack81.
  • ✅ Add regression test for hidden query parameters with undocumented 422 behavior. PR #61 by @matblack81.
  • 🎨 Standardize how examples are run and documented. PR #60 by @matblack81.
  • 🐛 Fix partial release state when release notes write fails. PR #59 by @matblack81.
  • 🐛 Fix infinite recursion on self-referential callback components. PR #57 by @matblack81.
  • 🐛 Reject invalid bump types and cover prepare_release's untested error paths. PR #56 by @matblack81.
  • 🐛 Fix partial release state when release notes update fails. PR #55 by @matblack81.
  • ⬆️ Bump tiangolo/latest-changes to 0.7.1. PR #54 by @matblack81.
  • ✅ Prove PR test changes actually catch a regression before merging. PR #53 by @matblack81.
  • ⬆ Bump fastapi from 0.139.2 to 0.140.0. PR #52 by @dependabot[bot].
  • ⬆ Bump the python-packages group with 5 updates. PR #51 by @dependabot[bot].
  • ⬆ Bump the github-actions group with 2 updates. PR #50 by @dependabot[bot].

1.1.0 (2026-08-01)

Features

  • ✨ Support custom validation error schemas with any field structure. PR #44 by @matblack81.
  • ✨ Extend validation error patching to webhooks and callbacks. PR #35 by @matblack81.

Fixes

  • 🐛 Fix cyclic and unresolvable $ref handling in local response resolution. PR #45 by @matblack81.
  • 🐛 Fix invalid OpenAPI produced when merging into a $ref target response. PR #40 by @matblack81.
  • 🐛 Fix user-defined schemas being silently overwritten by validation error definitions. PR #39 by @matblack81.
  • 🐛 Base validation detection on FastAPI's 422 signal instead of schema shape alone. PR #38 by @matblack81.
  • 🐛 Fix custom 422 models with a name ending in HTTPValidationError being silently deleted. PR #37 by @matblack81.
  • 🐛 Fix shared mutable schema objects leaking mutations across routes and apps. PR #36 by @matblack81.

Refactors

  • ♻️ Refactor local $ref resolution to support reusable components across multiple sections. PR #46 by @matblack81.
  • ♻️ Read FastAPI's validation error definitions dynamically instead of at import time. PR #41 by @matblack81.

Docs

  • 📝 Clarify behavior for ValidationError/HTTPValidationError schema collisions in README. PR #48 by @matblack81.
  • 📝 Clarify idempotency behavior in README. PR #43 by @matblack81.

Internal

  • ✅ Cover webhooks and callbacks with a runnable example. PR #47 by @matblack81.

1.0.0 (2026-07-28)

🎉 First stable release of fastapi-validation-override.

0.2.0 (2026-07-27)

Features

  • ✨ Keep validation errors documented at the target code even with a custom 422 response. PR #31 by @matblack81.
  • ✨ Add public patch_422_responses for schema patching outside override_validation_error. PR #30 by @matblack81.

Refactors

  • ♻️ Reorder anyOf to list the validation error before the custom response. PR #32 by @matblack81.

Internal

0.1.3 (2026-07-10)

Refactors

  • ♻️ Clarify idempotency guard comment to reflect actual behavior. PR #17 by @matblack81.

Docs

  • 📝 Fix wrong package name in installation commands. PR #19 by @matblack81.

Internal

  • ✅ Add tests for query param validation and multi-method path patching. PR #18 by @matblack81.

0.1.2 (2026-07-09)

Internal

  • 🔧 Integrate Codecov for coverage tracking and update README. PR #15 by @matblack81.

0.1.1 (2026-07-09)

Docs

  • 📝 Rewrite README with PyPI-safe links and corrected project metadata. PR #13 by @matblack81.

Internal

  • ⬆ bump the python-packages group with 5 updates. PR #11 by @dependabot[bot].
  • ⬆ bump https://github.com/crate-ci/typos from v1.48.0 to 5.0.7 in the pre-commit group. PR #9 by @dependabot[bot].
  • ⬆ bump dorny/paths-filter from 4.0.1 to 4.0.2 in the github-actions group. PR #10 by @dependabot[bot].
  • ⬆ bump fastapi from 0.138.0 to 0.139.0. PR #12 by @dependabot[bot].
  • 🔧 Overhaul CI/CD workflows for labeling, releases, and coverage tracking. PR #8 by @matblack81.

0.1.0 (2026-06-25)

🚀 First official public release of fastapi-validation-override.

Override FastAPI's default 422 validation error with any HTTP status code — patching both the runtime exception handler and the OpenAPI schema in a single call.

Features

  • ✨ Override the default 422 validation error with any HTTP status code at runtime and in the OpenAPI schema with a single call.
  • ✨ Automatic OpenAPI schema patch: the 422 entry is replaced by the target status code across all routes that produce a HTTPValidationError.
  • ✨ Smart schema merge: if a route already declares a response at the target status code, the validation error schema is merged using anyOf.
  • ✨ Custom app.openapi preserved: any custom OpenAPI function set by the developer is called first; the patch is applied on top of its output.
  • ✨ Custom exception handler: handle_exceptions=False patches only the schema, leaving full control of exception handling to the developer.
  • ✨ Idempotent: safe to call multiple times on the same app instance.