---
title: "fastapi Breaking Changes on PyPI | Since.dev"
description: "What each fastapi release removed, renamed or changed: 8 breaking changes in 2 versions on PyPI, each with its source."
canonical_url: https://since.dev/packages/pypi/fastapi
last_updated: 2025-09-29
---

# fastapi breaking changes

Every breaking API change we have recorded in fastapi on PyPI: 8 breaking changes in 2 versions. Below are its newest 2 versions, removals and renames first, each with its source.

Newest change September 29, 2025

## 0.118.0

3 breaking changes, first published September 29, 2025.

- **Behavior changed**  

Exit code of dependencies with yield now runs after the response is sent, not before. Code that relied on the 0.117.1 timing, such as closing a session before streaming, must be checked. [github.com](https://github.com/fastapi/fastapi/releases/tag/0.118.0)
- **Signature changed** `fastapi.security.OAuth2PasswordRequestForm.__init__`  

Was def \_\_init\_\_(self, \*, grant_type: Annotated\[Union\[str, None\], Form(pattern='^password$'), Doc('\\n The OAuth2 spec says it is required and MUST be the fixed string\\n "password". Nevertheless, this dependency class is permissive and\\n... [pypi.org](https://pypi.org/project/fastapi/0.118.0/)
- **Signature changed** `fastapi.security.OAuth2PasswordRequestFormStrict.__init__`  

Was def \_\_init\_\_(self, grant_type: Annotated\[str, Form(pattern='^password$'), Doc('\\n The OAuth2 spec says it is required and MUST be the fixed string\\n "password". This dependency is strict about it. If you want to be\\n permissive, use... [pypi.org](https://pypi.org/project/fastapi/0.118.0/)

## 0.117.0

5 breaking changes, first published September 20, 2025.

- **Configuration changed**  

The package now limits httpx to versions from 0.23.0 up to but not including 1.0.0. Projects that need httpx 1.0 or later must adjust their dependency versions. [github.com](https://github.com/fastapi/fastapi/releases/tag/0.117.0)
- **Signature changed** `fastapi.applications.get_openapi`  

Was def get_openapi(\*, title: str, version: str, openapi_version: str = '3.1.0', summary: Optional\[str\] = None, description: Optional\[str\] = None, routes: Sequence\[BaseRoute\], webhooks: Optional\[Sequence\[BaseRoute\]\] = None, tags... [pypi.org](https://pypi.org/project/fastapi/0.117.0/)
- **Signature changed** `fastapi.FastAPI.__init__`  

Was def \_\_init\_\_(self: AppType, \*, debug: Annotated\[bool, Doc('\\n Boolean indicating if debug tracebacks should be returned on server\\n errors.\\n\\n Read more in the\\n \[Starlette docs for... [pypi.org](https://pypi.org/project/fastapi/0.117.0/)
- **Signature changed** `fastapi.openapi.models.Schema.type`  

Was type: Optional\[str\]; now type: Optional\[Union\[SchemaType, List\[SchemaType\]\]\]. [pypi.org](https://pypi.org/project/fastapi/0.117.0/)
- **Signature changed** `fastapi.openapi.utils.get_openapi`  

Was def get_openapi(\*, title: str, version: str, openapi_version: str = '3.1.0', summary: Optional\[str\] = None, description: Optional\[str\] = None, routes: Sequence\[BaseRoute\], webhooks: Optional\[Sequence\[BaseRoute\]\] = None, tags... [pypi.org](https://pypi.org/project/fastapi/0.117.0/)

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
