NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1445 most downloaded on PyPI
Workflow orchestration and management.
Last release 2 days ago
02 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
8 years old
894 releases · first in 2019
Apply retry_jitter_factor in the task engine by @uinstinct in #23222
retry_jitter_factor in the task engine by @uinstinct in #23222Full Changelog: 3.8.8.dev2...3.8.8.dev3
3.8.8.dev3: Nightly Development Release Pre-release
Pre-release
Compare
One column per quarter.
Page through all runs in cancellation cleanup and pause expiration monitors by @chuqCTC in #23240
prefect-shell==0.3.7 by @devin-ai-integration[bot] in #23242Full Changelog: 3.8.8.dev1...3.8.8.dev2
3.8.8.dev2: Nightly Development Release Pre-release
Pre-release
Compare
Fix get_call_parameters to unwrap FieldInfo defaults for flow runs by @vyagubov in #23228
Full Changelog: 3.8.7...3.8.8.dev1
3.8.8.dev1: Nightly Development Release Pre-release
Pre-release
Compare
3.8.7 - There's no place like local
Released on September 25, 2026
New Features 🎉
Enhancements ➕➕
container_wait_timeout to DockerWorkerJobConfiguration by @devin-ai-integration[bot] in #23151flow_run(state_type, coalesce(start_time, expected_start_time)) index by @devin-ai-integration[bot] in #23128Bug Fixes 🐞
data:image/* URIs in ui-v2 markdown by @devin-ai-integration[bot] in #23156None values in find_placeholders by @devin-ai-integration[bot] in #23158include_files sidecar for direct Docker submissions by @devin-ai-integration[bot] in #22858persist_result in both task engines by @devin-ai-integration[bot] in #23160job_variables with an empty dict by @devin-ai-integration[bot] in #23203securityGroups so ECS tasks use the VPC default security group by @devin-ai-integration[bot] in #23132WatcherThreadCancelScope timeout injection and scope exit by @devin-ai-integration[bot] in #230890.0 from clamped_poisson_interval for non-positive intervals by @devin-ai-integration[bot] in #23208Integrations & Dependencies 🤝
soupsieve from 2.8.4 to 2.9 by @dependabot[bot] in #23147Development & Tidiness 🧹
test_multiple_workers_receive_distinct_messages by @devin-ai-integration[bot] in #23149node_modules in UI v2 lint job by @devin-ai-integration[bot] in #23168Documentation 📓
Full Changelog: 3.8.6...3.8.7
3.8.7 - There's no place like local Latest
Latest
Compare
Add browser-local pinned deployments to the React UI by @zzstoatzz in #23143
job_variables with an empty dict by @devin-ai-integration[bot] in #232030.0 from clamped_poisson_interval for non-positive intervals by @devin-ai-integration[bot] in #23208log_prefix to ShellOperation to allow suppressing the PID stream output prefix by @devin-ai-integration[bot] in #23174Full Changelog: 3.8.7.dev6...3.8.7.dev7
3.8.7.dev7: Nightly Development Release Pre-release
Pre-release
Compare
ui-v2: set browser tab titles on entity and index pages by @devin-ai-integration [bot] in #23179
container_wait_timeout to DockerWorkerJobConfiguration by @devin-ai-integration[bot] in #23151WatcherThreadCancelScope timeout injection and scope exit by @devin-ai-integration[bot] in #23089Full Changelog: 3.8.7.dev5...3.8.7.dev6
3.8.7.dev6: Nightly Development Release Pre-release
Pre-release
Compare
Render data:image/* URIs in ui-v2 markdown by @devin-ai-integration [bot] in #23156
data:image/* URIs in ui-v2 markdown by @devin-ai-integration[bot] in #23156None values in find_placeholders by @devin-ai-integration[bot] in #23158persist_result in both task engines by @devin-ai-integration[bot] in #23160Full Changelog: 3.8.7.dev4...3.8.7.dev5
3.8.7.dev5: Nightly Development Release Pre-release
Pre-release
Compare
Fix two tests that do not check what their names say by @devin-ai-integration [bot] in #23142
Full Changelog: 3.8.7.dev3...3.8.7.dev4
3.8.7.dev4: Nightly Development Release Pre-release
Pre-release
Compare
ui-v2: show tag names inline and make tag overflow focusable by @devin-ai-integration [bot] in #23116
Full Changelog: 3.8.7.dev2...3.8.7.dev3
3.8.7.dev3: Nightly Development Release Pre-release
Pre-release
Compare
Format deployment Created/Updated timestamps in ui-v2 metadata by @devin-ai-integration [bot] in #23112
Full Changelog: 3.8.7.dev1...3.8.7.dev2
3.8.7.dev2: Nightly Development Release Pre-release
Pre-release
Compare
Reduce task run recorder INSERT compilation CPU by @chuqCTC in #23041
Enhancements ➕➕
INSERT compilation CPU by @chuqCTC in #23041Bug Fixes 🐞
ERROR_ACCESS_DENIED as alive in Windows _is_pid_alive by @devin-ai-integration[bot] in #23037ix_event_resources__occurred left by an interrupted build by @devin-ai-integration[bot] in #23033PATH in AzureCLI.run_command by @devin-ai-integration[bot] in #23035flow_run_id cursor instead of an anti-join per batch by @devin-ai-integration[bot] in #23080local_storage_path to PREFECT_HOME/storage by @Tyagiquamar in #23070mark_deployments_ready by @devin-ai-integration[bot] in #23052Development & Tidiness 🧹
Integrations & Dependencies 🤝
tornado from 6.5.7 to 6.5.8 by @dependabot[bot] in #23009Documentation 📓
PREFECT_FLOW_RUN_EXECUTE_SIGTERM_BEHAVIOR in the Kubernetes guide by @devin-ai-integration[bot] in #23028commit_mode in the transactions guide by @bdalpe in #23077Full Changelog: 3.8.5...3.8.6
Reduce task run recorder INSERT compilation CPU by @chuqCTC in #23041
mark_deployments_ready by @devin-ai-integration[bot] in #23052Full Changelog: 3.8.6.dev4...3.8.6.dev5
3.8.6.dev5: Nightly Development Release Pre-release
Pre-release
Compare
Add TLA+ model for deployment concurrency leases by @desertaxle in #23030
Full Changelog: 3.8.6.dev3...3.8.6.dev4
3.8.6.dev4: Nightly Development Release Pre-release
Pre-release
Compare
ci: resolve integration dependency overrides with uv lock instead of post-hoc uv pip install by @devin-ai-integration [bot] in #23072
uv lock instead of post-hoc uv pip install by @devin-ai-integration[bot] in #23072Full Changelog: 3.8.6.dev2...3.8.6.dev3
3.8.6.dev3: Nightly Development Release Pre-release
Pre-release
Compare
Fix Docker work pool editing and block/env serialization in UI v2 by @devin-ai-integration [bot] in #23067
Full Changelog: 3.8.6.dev1...3.8.6.dev2
3.8.6.dev2: Nightly Development Release Pre-release
Pre-release
Compare
Treat ERROR_ACCESS_DENIED as alive in Windows _is_pid_alive by @devin-ai-integration [bot] in #23037
_is_pid_alive by @devin-ai-integration[bot] in #23037Full Changelog: 3.8.5...3.8.6.dev1
3.8.6.dev1: Nightly Development Release Pre-release
Pre-release
Compare
Suggest existing deployment tags in the V2 deployments filter by @devin-ai-integration [bot] in #22939
Enhancements ➕➕
id fields and matching filters to automation count and filter models by @znicholasbrown in #22944INSERT compilation CPU by @chuqCTC in #22961Bug Fixes 🐞
pandas when prefect.cache_policies is imported by @devin-ai-integration[bot] in #22999const value when a literal branch is selected in a schema form by @devin-ai-integration[bot] in #22911Crashed after a post-completion SIGTERM by @devin-ai-integration[bot] in #23026critical_service_loop by @ethanstoner in #22980Integrations & Dependencies 🤝
snowflake-connector-python from 4.4.0 to 4.7.1 by @dependabot[bot] in #22996browserslist from 4.25.1 to 4.28.8 in the V2 UI by @dependabot[bot] in #23010fast-uri from 3.1.5 to 3.1.7 in the V2 UI by @dependabot[bot] in #23021@xmldom/xmldom from 0.8.13 to 0.8.15 in the V2 UI by @dependabot[bot] in #23022@humanfs/node from 0.16.6 to 0.16.8 in the V2 UI by @dependabot[bot] in #23020qs from 6.15.2 to 6.16.0 in the legacy UI by @dependabot[bot] in #23023Development & Tidiness 🧹
prefect_test_harness settings visible in isolated asyncio test cases by @devin-ai-integration[bot] in #22962storage_document_id fixture and block data encryption deterministic by @devin-ai-integration[bot] in #22966main by @devin-ai-integration[bot] in #22977main by @devin-ai-integration[bot] in #22963Documentation 📓
Full Changelog: 3.8.4...3.8.5
3.8.5 - A little jitter never hurt anybody
Compare
Use indexed flow run cleanup with separate orphan reconciliation by @devin-ai-integration [bot] in #22875
Full Changelog: 3.8.5.dev5...3.8.5.dev6
3.8.5.dev6: Nightly Development Release Pre-release
Pre-release
Compare
Do not import pandas when prefect.cache_policies is imported by @devin-ai-integration [bot] in #22999
Full Changelog: 3.8.5.dev4...3.8.5.dev5
Use current settings for resource label validation by @chuqCTC in #22959
Full Changelog: 3.8.5.dev3...3.8.5.dev4
Fix scheduled flow run polling by @devin-ai-integration [bot] in #22970
Full Changelog: 3.8.5.dev2...3.8.5.dev3
fix(ui-v2): selecting enum dropdown in Quick Run dialog navigates away by @vyagubov in #22953
Full Changelog: 3.8.5.dev1...3.8.5.dev2
Suggest existing deployment tags in the V2 deployments filter by @devin-ai-integration [bot] in #22939
Full Changelog: 3.8.4...3.8.5.dev1
Add time selection to the interval schedule anchor date by @devin-ai-integration [bot] in #22872
Enhancements ➕➕
flow_run.deployment_id by @devin-ai-integration[bot] in #22890Bug Fixes 🐞
ProcessWorker auto-uv after pull steps by @desertaxle in #22857prefetch_seconds of 0 in BaseWorker by @ckarnell in #22836total_seconds in the worker polling healthcheck by @tushardev-365 in #22900client/Dockerfile so it stops shipping in the client image by @devin-ai-integration[bot] in #22833skipUpdateTransform=false by @vyagubov in #22849Integrations & Dependencies 🤝
Development & Tidiness 🧹
pytest-split for Python 3.12/Postgres tests by @desertaxle in #22869PREFECT_ env vars by @devin-ai-integration[bot] in #22867Documentation 📓
docs.json by @zzstoatzz in #22891Full Changelog: 3.8.3...3.8.4
Add configurable base directory for included files by @desertaxle in #22855
pytest-split for Python 3.12/Postgres tests. by @desertaxle in #22869Full Changelog: 3.8.4.dev6...3.8.4.dev7
Open a parameters dialog when a quick run needs required parameters by @devin-ai-integration [bot] in #22903
Full Changelog: 3.8.4.dev5...3.8.4.dev6
Fix stale Azure Container Instance examples by @samrusani in #22830
Full Changelog: 3.8.4.dev4...3.8.4.dev5
Capture Kubernetes job pod logs once the job is terminal by @devin-ai-integration [bot] in #22883
Full Changelog: 3.8.4.dev3...3.8.4.dev4
Add time selection to the interval schedule anchor date by @devin-ai-integration [bot] in #22872
Full Changelog: 3.8.4.dev2...3.8.4.dev3
Make tests independent of ambient OpenTelemetry context and non-setting PREFECT_ env vars by @devin-ai-integration [bot] in #22867
Full Changelog: 3.8.4.dev1...3.8.4.dev2
Prevent runners from overwriting handled flow-run outcomes by @desertaxle in #22821
Full Changelog: 3.8.3...3.8.4.dev1
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.3...3.8.4.dev1
Stop fragmenting task run recorder bulk upserts by @chuqCTC in #22808
Enhancements ➕➕
uv run launcher for process workers by @devin-ai-integration[bot] in #22723Bug Fixes 🐞
anyOf branch for record values in V2 UI schema forms by @devin-ai-integration[bot] in #22806anyOf string values in V2 UI schema forms by @devin-ai-integration[bot] in #22754Development & Tidiness 🧹
FileSystemLockManager hold-timeout tests time-independent by @devin-ai-integration[bot] in #22716Documentation 📓
flows docstring by @cbrown1234 in #22802.deploy() example in the versioning how-to guide by @uinstinct in #22810Full Changelog: 3.8.2...3.8.3
Send basic auth header on the self-hosted events WebSocket handshake by @devin-ai-integration [bot] in #22813
Full Changelog: 3.8.3.dev2...3.8.3.dev3
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.3.dev2...3.8.3.dev3
fix(ui-v2): select a valid anyOf branch for record values in schema forms by @devin-ai-integration [bot] in #22806
uv run launcher for process workers by @devin-ai-integration[bot] in #22723Full Changelog: 3.8.3.dev1...3.8.3.dev2
<!-- Release notes generated using configuration in .github/release.yml at main -->
uv run launcher for process workers by @devin-ai-integration[bot] in https://github.com/PrefectHQ/prefect/pull/22723Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.3.dev1...3.8.3.dev2
Block submission when a required array parameter is emptied in ui-v2 by @devin-ai-integration [bot] in #22750
Full Changelog: 3.8.2...3.8.3.dev1
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.2...3.8.3.dev1
Add removable chips for multi-select enum array fields by @vyagubov in #22738
Enhancements ➕➕
User-Agent on WebSocket handshakes by @devin-ai-integration[bot] in #22706Bug Fixes 🐞
ValueError for negative timeouts in PrefectFutureList.result, as_completed, and wait by @kingsley-123 in #22692setuptools in conda Docker images by @devin-ai-integration[bot] in #22743Development & Tidiness 🧹
Documentation 📓
follows establishes event ordering for automation triggers by @chrisguidry in #22710Args entries that name a parameter the function does not take by @darkdi in #22733Full Changelog: 3.8.1...3.8.2
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.2.dev5...3.8.2.dev6
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.2.dev4...3.8.2.dev5
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
follows establishes event ordering for automation triggers by @chrisguidry in https://github.com/PrefectHQ/prefect/pull/22710prefect-kubernetes==0.7.12, prefect-redis==0.2.14, prefect-aws==0.7.11, and prefect-slack==0.4.0 by @devin-ai-integration[bot] in https://github.com/PrefectHQ/prefect/pull/22709Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.2.dev3...3.8.2.dev4
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.2.dev2...3.8.2.dev3
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.2.dev1...3.8.2.dev2
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.1...3.8.2.dev1
Show tooltips for flow run state tabs in the V2 UI by @uinstinct in #22617
Enhancements ➕➕
Bug Fixes 🐞
ConcurrencyContext exit cleanup best-effort by @devin-ai-integration[bot] in #22619PrefectFutureList.result timeout message reachable by @devin-ai-integration[bot] in #22634FlowRunFilter and its nested criteria by @devin-ai-integration[bot] in #22659Development & Tidiness 🧹
TEST_BLOCK_CODE_BAD_SYNTAX on Windows by @g-ringeisen in #22642mintlify-scrape install from static analysis by @devin-ai-integration[bot] in #22677Documentation 📓
Submitting and InfrastructurePending states by @devin-ai-integration[bot] in #22660Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.0...3.8.1
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.1.dev4...3.8.1.dev5
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.1.dev3...3.8.1.dev4
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.1.dev2...3.8.1.dev3
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.1.dev1...3.8.1.dev2
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.8.0...3.8.1.dev1
Add deployment filters to flow run triggers by @samiat4911 in #22319
Enhancements ➕➕
ProcessPoolTaskRunner by @devin-ai-integration[bot] in #22591Bug Fixes 🐞
RemoteFileSystem path resolution containment and rebuild absolute URLs by @devin-ai-integration[bot] in #22476module-path entrypoints when generating default pull step by @devin-ai-integration[bot] in #22493pull: [] in prefect deploy instead of forcing set_working_directory by @devin-ai-integration[bot] in #22490db_vacuum retention-override full scan of event_resources by @devin-ai-integration[bot] in #22536TaskRunFilterState.type and TaskRunFilterState.name a default of None by @chuenchen309 in #22526ObfuscateApiKeyFilter by @devin-ai-integration[bot] in #22552TTLCache in _read_toml_file with a lock by @devin-ai-integration[bot] in #22571as_completed timeout enforcement in worker threads and on Windows by @devin-ai-integration[bot] in #22607READ COMMITTED isolation for PostgreSQL server transactions by @devin-ai-integration[bot] in #22531Integrations & Dependencies 🤝
Development & Tidiness 🧹
≥1.0.65 loads all skills by @thejesh23 in #22484truncated_to in utilities.text by @eeshsaxena in #22532Documentation 📓
/api/health vs /api/ready for Kubernetes probes by @br413 in #22500vpce-id binding) by @jimid27 in #22498PREFECT_SERVER_DATABASE_MIGRATION_TIMEOUT by @github-actions[bot] in #22610initializer/initargs support in ProcessPoolTaskRunner by @github-actions[bot] in #22595IfPossible Docker image pull policy option by @github-actions[bot] in #22515Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.8...3.8.0
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.9.dev4...3.7.9.dev5
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.9.dev3...3.7.9.dev4
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
pull: [] in prefect deploy instead of forcing set_working_directory by @devin-ai-integration[bot] in https://github.com/PrefectHQ/prefect/pull/22490prefect-databricks==0.4.2 by @devin-ai-integration[bot] in https://github.com/PrefectHQ/prefect/pull/22514Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.9.dev2...3.7.9.dev3
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.9.dev1...3.7.9.dev2
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.8...3.7.9.dev1
Format server-side validation errors for concurrency slot acquisition by @devin-ai-integration[bot] in #22470
Enhancements ➕➕
Bug Fixes 🐞
TaskRunRecorder periodic flush alive when events are dropped by @zzstoatzz in #22441git pull in runner storage by @devin-ai-integration[bot] in #22447RRULE schedule anchor computed in UTC but interpreted as local time by @devin-ai-integration[bot] in #22456prefect api requests passing both --root and --account by @devin-ai-integration[bot] in #22462Development & Tidiness 🧹
utilities.math by @eeshsaxena in #22438Documentation 📓
PREFECT_API_DATABASE_* examples with PREFECT_SERVER_DATABASE_* names by @devin-ai-integration[bot] in #22471module-path entrypoint imports by @github-actions[bot] in #22402Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.7...3.7.8
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.8.dev3...3.7.8.dev4
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.8.dev2...3.7.8.dev3
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.8.dev1...3.7.8.dev2
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.7...3.7.8.dev1
Accept a single step mapping in prefect.yaml action sections by @devin-ai-integration[bot] in #22403
Enhancements ➕➕
prefect.yaml action sections by @devin-ai-integration[bot] in #22403Bug Fixes 🐞
set_working_directory relative path resolution in workspace resolver by @devin-ai-integration[bot] in #22392Documentation 📓
docs.json for copy and view markdown by @devin-ai-integration[bot] in #22401Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.7.6...3.7.7
Your coding agent can read these notes before it upgrades. Set up the MCP server →