# AgentOS run routes keep their form defaults on current FastAPI

> Agno AgentOS run routes stream Server-Sent Events by default again on FastAPI 0.147.0 and later, and continue calls without regenerate=true stop failing with a 400.

- Published: 2026-10-19
- Author: Harsh Sinha
- Categories: Changelog
- Canonical: https://www.agno.com/blog/agentos-run-routes-keep-their-form-defaults-on-current-fastapi
- Markdown: https://www.agno.com/blog/agentos-run-routes-keep-their-form-defaults-on-current-fastapi.md

FastAPI 0.147.0 reads every `bool` form field a client leaves out as `False`, whatever default the endpoint declares, and Agno's AgentOS routes now look at the raw form and restore their own default whenever a field is missing. Agno doesn't cap its `fastapi` dependency, so any fresh install of `agno[os]` picked up the new behaviour.

Three fields changed meaning. An omitted `stream` (default `True`) turned the agent, team and workflow run and continue routes into JSON endpoints. An omitted `monitor` on the team run route was logged as `False`. An omitted `replace_original` (default unset) on the agent and team continue routes arrived as `False`, so every continue without `regenerate=true` failed with a 400, and a regenerate left the original response visible.

We ran both routes through FastAPI's `TestClient` on FastAPI 0.157.0 for both releases, with a stub model standing in for a real one:

```text
# earlier releases
POST /agents/helper/runs (stream omitted) -> 200 application/json
POST /agents/helper/runs/{run_id}/continue (regenerate omitted) -> 400 `replace_original` only makes sense with `regenerate=True`.

# this release
POST /agents/helper/runs (stream omitted) -> 200 text/event-stream
POST /agents/helper/runs/{run_id}/continue (regenerate omitted) -> 200 status=COMPLETED content='done: and then?'
```

A value the client sends on purpose, like `stream=false`, still wins. On FastAPI releases before 0.147.0 an omitted field already matched its default, so nothing changes there. `AgentOSClient`, `RemoteAgent`, `RemoteTeam` and `RemoteWorkflow` always send `stream`, so callers using them never hit the bug.

Learn more about [streaming run events](https://docs.agno.com/agent-os/using-the-api#stream-run-events) in the documentation.
