Skip to content

Changelog

New in Prefect: features, improvements, and fixes. For the complete record of every open source release, see the release notes.

3.8.0
Open source

Prefect 3.8: the redesigned UI ships by default

The redesigned UI is now the default for self-hosted servers, with quicker run navigation, clickable log links, and a round of reliability fixes.

The redesigned UI is the default for self-hosted servers. Run Prefect yourself and you now get the V2 interface out of the box, with no opt-in required. (#22519)

Also in this release:

Copy to new run. Re-run a flow straight from the run menu with its options carried over.#22565#22567
Clickable log links. URLs in run logs are now links you can follow.#22496
Easier date inputs. Pick a year and month, or type a date directly, when filtering runs.#22495
Deployment filters on triggers. Flow run triggers can scope to specific deployments.#22319
Run watch survives reconnects. Following a flow run keeps going across stream disconnects.#22550
No leaked concurrency slots. A cancelled slot acquisition no longer leaves a slot reserved.#22542

The full release notes cover every change, including bug fixes.

3.7.8
Open source

Prefect 3.7.8: scheduling and event stream fixes

A patch release focused on reliability at the edges: RRULE schedule anchors, the event recorder under load, and clearer worker auth errors.

Recurring schedules stay put. RRULE anchors were computed in UTC but interpreted as local time, which could shift recurring runs by your UTC offset.#22456
Event recording survives bursts. TaskRunRecorder keeps its periodic flush alive when events are dropped, so a burst no longer stalls recording.#22441
The events client picks up where it left off. When its connection drops, it reconnects from a time-based checkpoint instead of losing its place in the stream.#22451
Clearer worker auth errors. Channel upgrade failures now distinguish HTTP 401 from 403, so you can tell a bad credential from a missing permission.#22469
Readable concurrency errors. Server-side validation errors for concurrency slot acquisition are now formatted instead of raw.#22470
A Windows fix. git pull in runner storage no longer hits a permission error.#22447

Upgrade with pip install -U prefect, or see the full release notes for everything in 3.7.

Open source

Prefect 3.7.1 through 3.7.7: real-time workers and a faster scheduler

The releases between 3.7.0 and 3.7.8 built a real-time channel between the server and workers, made the scheduler noticeably faster, and started emitting lifecycle events for every object.

A real-time worker channel. Workers hold a WebSocket connection to the server, with a REST fallback, so work-pool changes and cancellations reach them without waiting on a poll.#21859#21885#22004
Reliable cancellation cleanup. A Redis-backed cleanup queue with leases, retries, and dead-letter handling makes sure a cancelled run's infrastructure actually gets torn down.#22109#22205#22206
Lifecycle events for everything. Prefect emits created, updated, and deleted events for variables, flows, blocks, concurrency limits, artifacts, and automations, so you can automate on any change.#22226
Delete a flow run from an automation. A new automation action removes flow runs, so you can prune on your own rules.#22018
A faster scheduler and quicker startup. A partial index speeds up scheduling queries, and lazy server imports cut cold-start time.#22111#22122
Default result storage from the CLI. Set a workspace's default result storage without writing code.#21771

The release notes cover every 3.7 release in full.

3.7.0
Open source

Prefect 3.7: infrastructure decorators and plugins are GA

Two of our most-requested experimental surfaces graduate to general availability, flows can render their own dependency graphs, and prepared workspaces now run with uv.

Infrastructure decorators are generally available. Declare where a flow runs next to the flow itself, no separate deployment configuration required. (#21784)

The plugin system is generally available. Extend Prefect with your own integrations using the same mechanism our official ones use. (#21787)

Also in this release:

Flows can draw themselves. flow.generate_mermaid_graph() renders a flow's dependency graph with no extra dependencies, and the UI now renders Mermaid diagrams inside Markdown blocks.#21786#21793
Set result storage once. Servers can define default result storage, resolved at runtime, so individual flows no longer need to repeat it.#21532
Faster, reproducible environments. Prepared pyproject workspaces run with uv.#21801
Smaller touches. A per-browser UI version switcher, block schema reads without the O(N²) checksum scan, and a warning when nested ThreadPoolTaskRunner submissions would deadlock.

The full release notes cover every change, including bug fixes.

Open source

Prefect 3.6.10 through 3.6.29: the command line grows up

The releases across early 2026 leaned into the command line and day-to-day operations: SDK generation, a server status command, watching runs from the terminal, and richer run telemetry.

Generate a deployment SDK. prefect sdk generate builds a typed client for an existing deployment, so callers get autocomplete and validation.#20150
A server status command. prefect server status checks a self-hosted server's health from the command line.#20619
Watch a run from the terminal. prefect flow-run watch follows any flow run until it reaches a terminal state.#21260
Carry run context into subprocesses. with_context() propagates Prefect's run context into processes you spawn yourself.#21304
Manage assets from the CLI. prefect cloud asset lists and deletes assets.#20524
Bulk operations. New endpoints act on many flow runs, deployments, and flows at once.#20469
Clearer pre-run states. Workers emit Submitting and InfrastructurePending, so you can watch a run come up.#20964
Run resource telemetry. Flow run subprocesses report OS-level resource use.#21071

The release notes cover every 3.6 release in full.

Open source
Cloud

Assets: track what your workflows produce

Replace @task with @materialize and Prefect tracks the tables, models, and files your workflows produce, and how they all connect.

When a dashboard throws garbage numbers at quarter-end, someone has to follow the breadcrumbs back through tasks, tables, and stray CSVs. That is asset lineage in the real world, and Prefect now tracks it without asking you to contort your workflow around asset definitions. Tell Prefect what a function produces:

assets.py
@materialize("s3://bucket/important-data.csv")
def write_data():
    # writes s3://bucket/important-data.csv
    ...

Prefect builds the lineage graph from there: what each workflow produces, when it last ran, and how your outputs depend on each other.

Read the announcement post for the full story, or start with the assets documentation.