3.4.25 - A slice of π-thon
Released on October 23, 2025 Enhancements ➕➕- Unify sync and async client methods by @hanhwanglim in #19217
- Add Python 3.14 support by @desertaxle in #19119
- Upgrade Docker image SQLite to 3.50.4 to address CVE-2025-6965 by @desertaxle in #19214
- Fix GitLab credentials for self-hosted instances and deploy tokens by @zzstoatzz in #19227
- Make
MemoryLockManagerserializable withcloudpickleby @desertaxle in #19246 - Suppress noisy concurrency warnings for automatic tag-based checks by @desertaxle in #19254
- Fix work pool env vars being overwritten by variable defaults by @desertaxle in #19258
- Fix non-deterministic test flake in PREFECT_EXPERIMENTS_PLUGINS_ALLOW tests by @zzstoatzz in #19203
- Add
generate-cli-docstojustfileby @desertaxle in #19245 - Add
uvandghas allowed tools for Claude in GitHub Actions by @desertaxle in #19210 - Refactor git credential formatting to fix leaky abstraction by @zzstoatzz in #19236
- Correct worker
--limitargument documentation by @desertaxle in #19244 - Add
pydantic-aidata analyst example by @desertaxle in #19209 - Update Prefect MCP status in docs by @zzstoatzz in #19213
- Correct Modal dashboard link by @jesse-c in #19240
- Fix repository name capitalization in README example by @gowtham1412-p in #19260
3.4.24 - The Un-Crashening
Released on October 16, 2025 Enhancements ➕➕- Add flow run watching with interleaved events and logs by @chrisguidry in #19158
- Use shared websocket utilities for Subscription SSL and proxy support by @chrisguidry in #19159
- Add
--allflag toprefect automation deleteby @zzstoatzz in #19164
- Introduce experimental plugin system by @desertaxle in #19145
- Mitigate memory leak in in-memory messaging system by @desertaxle in #19136
- Fix duplicate env vars from work pools in Kubernetes jobs by @zzstoatzz in #19171
- Fix
ProcessPoolTaskRunnerwhen submitting withwait_forby @desertaxle in #19172 - Fix deployment name truncation in
from_storageandafrom_storageby @zzstoatzz in #19179 - Avoid transitioning flow run to crashed when user code has already finished successfully by @desertaxle in #19181
- Fix worker crash from double-release of concurrency limiter token by @desertaxle in #19188
- Fix worker/runner crashes when flow runs are deleted by @desertaxle in #19189
- Fix race conditions in concurrency lease renewal by @bunchesofdonald in #19187
- Fix
RunInput.with_initial_datato preserve type annotations by @zzstoatzz in #19176
- Use canonical
websocket_connectimport in proxy test script by @zzstoatzz in #19161 - De-flake integration tests by @desertaxle in #19191
- Migrate
prefect.statesexception handlers toasync_dispatchby @zzstoatzz in #19170 - Update downstream repo reference for image automation by @jamiezieziula in #19139
- Improve Prefect MCP server documentation by @zzstoatzz in #19142
- Clarify install instructions by @zzstoatzz in #19165
- Create release notes entry for
prefect-aws==0.6.0by @desertaxle in #19168 - Add documentation for passing event payloads to flows by @zzstoatzz in #19174
- Clarify
build_docker_imageaccepts all Docker SDK kwargs by @zzstoatzz in #19194
3.4.23 - Would you like some API in your CLI?
Released on October 09, 2025 Enhancements ➕➕- feat(client): allow using custom SSL contexts by @fatih-acar in #19106
- Add
prefect apicommand for direct API access by @chrisguidry in #19131
- Add support for day_or parameter in cron schedule configurations by @zzstoatzz in #19121
- Fix interference in async cancellation handling from
timeout_asynccontext manager by @desertaxle in #19101 - Fix recursive local module discovery in bundle serialization by @desertaxle in #19124
- Fix test_flow_run_lateness flake with dynamic tolerance by @chrisguidry in #19132
- docs: link to available integrations release notes by @rcash in #19108
- Add ATProto social analytics dashboard example using Prefect Assets by @zzstoatzz in #18984
- Add documentation for Prefect MCP server by @desertaxle in #19115
3.4.22 - If Only Our Releases Had Transaction Rollbacks
Released on October 03, 2025 Bug Fixes 🐞- Fix startup errors when installed with
pydantic2.10 and Python 3.9 and 3.10 by @desertaxle in #19095 - Fix async task transaction rollback from sync task by @zzstoatzz in #19097
- document serving instance methods by @zzstoatzz in #19075
3.4.21 - Memory Lane Has a TTL
Released on October 02, 2025 Enhancements ➕➕- Add automatic local dependency discovery for flow bundles by @desertaxle in #19043
- Allow serving instance methods by @desertaxle in #19070
- Add task run tags as related resources on task run events by @chrisguidry in #19059
- Enable configurable lease timeout durations by @solms in #19058
- Improve CLI import performance by @zzstoatzz in #19078
- Improve deployment validation error messages by @desertaxle in #19038
- Fix
KeyErrorwhen running deployment without parameter schema by @zzstoatzz in #19055 - Fix
PREFECT_CLIENT_CUSTOM_HEADERSJSON string parsing by @zzstoatzz in #19052 - Use
TTLCachefor memory-basedCausalOrderingto prevent memory leaks by @desertaxle in #19061 - Fix block type dispatch breaking validation of Block Unions by @GalLadislav in #18995
- Update Postgres listener to respect
application_namesetting by @zzstoatzz in #19081
- Clean up lineage experiment by @zzstoatzz in #19041
- Remove duplicate
graphviz, bumptyper, update lockfile by @zzstoatzz in #19051 - Remove flaky serve interrupt integration test by @zzstoatzz in #19053
- Rename
server.concurrency.initial_lease_timeouttoserver.concurrency.initial_deployment_lease_durationby @desertaxle in #19085 - Normalize empty
parameter_openapi_schemato valid OpenAPI format by @zzstoatzz in #19072 - Keep
DeploymentCreate.parameter_openapi_schemafieldOptionalby @zzstoatzz in #19089
- Improve automation actions documentation with type identifiers by @zzstoatzz in #19071
3.4.20 - Search Party
Released on September 25, 2025 Enhancements ➕➕- Add text search for events and logs filtering by @chrisguidry in #19011
- Vertical scale prefect server with workers by @hanhwanglim in #18876
- Add polling fallback for
FlowRunCancellingObserverby @desertaxle in #19017 - Fix
pydantic-settings2.11+ compatibility warnings by @zzstoatzz in #19029
- Fix documentation links in server code docstrings by @zzstoatzz in #19030
- Improve tag-based concurrency limits documentation by @desertaxle in #18990
- Correct a typo and incorrect link to a header by @Baitur5 in #19015
- Fix profiles path docs in settings ref by @hanhwanglim in #19018
- Add LLM-friendly docs section by @desertaxle in #19012
3.4.19 - Pay No Attention To That GCL Behind The Curtain
Released on September 19, 2025 Enhancements ➕➕- split
deploy.pyinto a module by @zzstoatzz in #18925 - Add minimal V1→V2 concurrency adapter by @zzstoatzz in #18971
- Update task concurrency slot orchestration rules to work with global concurrency limits by @desertaxle in #18983
- Update task engine to use GCLs to limit task concurrency by @desertaxle in #18982
- Migrate V1 concurrency limits to V2 format in database by @zzstoatzz in #18968
- Add pagination support to lease storage
read_active_lease_idsby @zzstoatzz in #18973 - Add
list_holders_for_limittoConcurrencyLeaseStorageprotocol by @zzstoatzz in #18970
- Fix
set_working_directoryto return absolute path by @desertaxle in #18932 - Silence retryable SQLite lock errors by @zzstoatzz in #18957
- Fix
wait()to monitor all futures concurrently with timeout by @zzstoatzz in #18960 - Fix blocks not registering schema for nested Blocks in piped union types by @GalLadislav in #18920
- Fix atomicity issue in GCL-backed tag-based concurrency limits by @desertaxle in #18991
- Add Python environment setup to Claude workflow by @desertaxle in #18931
- Add models for validating loaded
prefect.yamlfiles by @desertaxle in #18941 - Replace pre-push docs generation with GitHub Action by @desertaxle in #18930
- Install
mdxifyexplicitly in CI by @desertaxle in #18954 - Add starlette status code compatibility layer by @zzstoatzz in #18963
- fix: add redirect setting to docs.json to fix /latest path 404s by @zzstoatzz in #18945
- fix: add errors.404.redirect setting to fix /latest path 404s by @zzstoatzz in #18946
3.4.18 - He who holds the leases controls the universe
Released on September 12, 2025 Enhancements ➕➕- Add bulk pause/resume commands for deployment schedules by @zzstoatzz in #18860
- Add holder parameter to V2 concurrency endpoints by @zzstoatzz in #18887
- preserve user-configured root logger on import by @zzstoatzz in #18873
- Fix
FileExistsErrorin runner temp directory creation by @zzstoatzz in #18864 - Fix race condition in ProactiveTriggers service by @desertaxle in #18909
- Add pre-commit instruction to Claude GitHub workflow by @zzstoatzz in #18910
- fix: use ruff-check instead of legacy ruff alias in pre-commit by @zzstoatzz in #18914
- Update git version constraint in dockerfile by @cicdw in #18916
- Add Claude Code GitHub Workflow by @zzstoatzz in #18908
3.4.17 - Distribution Matters
Released on September 05, 2025 Bug Fixes 🐞- Run
DistributorandLogDistributorin Prefect API servers by @desertaxle in #18868
- Add
--refflag to trigger OSS testbed image update by @desertaxle in #18863
3.4.16 - Background Noise Reduction
Released on September 05, 2025 Enhancements ➕➕- Wait until determining deployment create or update to add deployment schedules by @kevingrismore in #18823
- Display postgresql version on prefect version by @hanhwanglim in #18836
- More robust
write_pathmethod inRemoteFileSystemto handle SMB UNC paths. by @tom21100227 in #18824
- Fix nested
.delay()serialization issue by @zzstoatzz in #18849 - Fix
result_asyncrace condition using final state from waiter by @zzstoatzz in #18850 - Improve multi-server scaling for triggers by @desertaxle in #18820
- Fix AttributeError in create_flow_run_from_deployment (#18707) by @eddiemaru-101 in #18807
- Kubernetes label disable lowercase by @raniasev in #18841
- Add an additional check to obscure basic auth credentials when
git clonefails by @desertaxle in #18845 - Preserve dev version info when generating docker image tag by @desertaxle in #18854
- Remove unnecessary ‘No retries configured’ message from task failure logs by @zzstoatzz in #18844
- Drop
--refresh-packagefrommdxifyuse in api ref gen by @zzstoatzz in #18851 - Claude prompts by @zzstoatzz in #18833
- Add trigger to update the OSS testbed image on Docker image release by @desertaxle in #18853
- Remove stale mdx files from api ref by @zzstoatzz in #18828
3.4.15 - Emit me maybe
Released on August 29, 2025 New Features 🎉-
Event emission from the command line with
prefect event emitEmit events directly from external systems with the newprefect event emitCLI command. Perfect for triggering deployment runs from CI/CD!by @zzstoatzz in #18813
- Add
schedule_afterfield toRunDeploymentaction for delayed execution by @chrisguidry in #18801 - Update deployment concurrency limit lease maintenance to raise on failure by @desertaxle in #18811
- Enable metrics server on workers by @bdalpe in #18630
- Add artifact created and updated events by @zangell44 in #18818
- Fix metric trigger validation in automations schema by @zzstoatzz in #18773
- Fix event filter empty label value arrays to return no results by @chrisguidry in #18810
- Special case for proactive automation by @jakekaplan in #18819
- Add dictionary handling into
_to_environment_variable_valueby @vyagubov in #18817
- Fix workflow to publish
prefect-awsimages when triggered viaworkflow_callby @desertaxle in #18763 - Bump
rufffrom 0.12.8 to 0.12.10 by @dependabot[bot] in #18768 - Fix CloudFormation template generation during
prefect-awsrelease by @desertaxle in #18792 - Skip validating generated CloudFormation templates by @desertaxle in #18794
- Add
uvset up to integration package release by @desertaxle in #18793
- Overhaul ECS Worker Guide by @bdalpe in #18756
- Add
PREFECT_SERVER_EVENTS_CAUSAL_ORDERINGto self-hosted docs by @zzstoatzz in #18774 - Fix
profiles_pathrendering in settings ref by @rcash in #18772 - Document PostgreSQL 14.9+ requirement by @desertaxle in #18784
- Add SQS queue and EventBridge setup to ECS worker manual deployment guide by @desertaxle in #18789
- Fix Docker healthcheck documentation to use Python instead of
curlby @zzstoatzz in #18809
3.4.14 - Ctrl+C, Ctrl+V
Released on August 21, 2025 New Features 🎉-
Environment Migration with
prefect transferTransfer your Prefect setup between backends with a single command! Idempotently migrate work pools, deployments, blocks, variables, and concurrency limits between self-hosted servers and Prefect Cloud. Check the Prefect dev log for more info! -
Parallel task execution with
ProcessPoolTaskRunnerThis new task runner executes tasks in separate subprocesses and while maintaining run context so you get full observability while running in parallel. A great choice if you need parallelism, but aren’t ready to start usingdaskorray. Check the PR for more info!
- Add
count_flow_runsto prefect client by @hanhwanglim in #18713 - Update bundle creation to exclude dependencies installed from a local file path by @desertaxle in #18743
- Fix apprise notifications failing silently with
prefect_defaultnotification type by @zzstoatzz in #18720 - Fix error log when using a concurrency limit with a lease in strict mode by @desertaxle in #18725
- Fix total run time calculation for tasks by @desertaxle in #18759
- Relax upper bound on
clickby @desertaxle in #18731 - Avoid key collision in tests by @zzstoatzz in #18733
- Run SDK API reference generation as
pre-pushhook by @zzstoatzz in #18736 - Deflake concurrency limit integration tests by @desertaxle in #18745
- Remove cloud telemetry sending infrastructure while preserving instrumentation by @bunchesofdonald in #18739
- Add
ProcessPoolTaskRunnerdocs andThreadPoolTaskRunnerexamples by @zzstoatzz in #18734 - Fix incorrect keys in automation by @zzstoatzz in #18760
- Use a consistent repo URL when generating SDK reference docs by @desertaxle in #18761
3.4.13 - No, Your Database Cannot Have a Little Lock, Even As a Treat
Released on August 14, 2025 Bug Fixes 🐞- Use server base path configuration when creating internal client by @anton-daneyko-ultramarin in #18668
- Fix TypeError with apprise 1.9.4 when adding notify type by @zzstoatzz in #18697
- Fix DB locks during DB clear with postgres by @desertaxle in #18684
- Add integration release notes section to documentation by @zzstoatzz in #18711
- Update “Use integrations” to reflect reference
pyproject.tomlby @alastairtree in #18689 - Add note on necessary GitHub PAT permissions by @rcash in #18696
- Add devlog to community resources in README by @zzstoatzz in #18698
3.4.12 - 20k magic in the air
Released on August 08, 2025 Bug Fixes 🐞- Check future is if cancelled. by @is in #18628
- Add in-memory causal ordering for task run recorder by @desertaxle in #18634
- Add note on run_shell_script by @rcash in #18658
- Note about
to_deploymentby @zzstoatzz in #18647 - Fix event emission when blocks are loaded server-side by @desertaxle in #18679
- chore(deps): bump ruff from 0.9.6 to 0.12.7 by @dependabot[bot] in #18622
- chore(deps): bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #18650
- chore(deps): bump ruff from 0.12.7 to 0.12.8 by @dependabot[bot] in #18673
- chore(deps): bump uv from 0.5.7 to 0.8.6 in /scripts/proxy-test by @dependabot[bot] in #18672
- Port examples hosting from PrefectHQ/examples by @desertaxle in #18661
- Add Python SDK to variables-docs by @oakhill87 in #18626
- Make mention of Azure Event Grid support by @bdalpe in #18631
- Fix link for ThreadPoolTaskRunner in Task Runners doc by @bdalpe in #18663
- Bold the stray h2 by @zzstoatzz in #18669
- Add CTA for contributing examples by @desertaxle in #18671
- Add setting to customize which causal ordering implementation to use by @desertaxle in #18675
- Don’t use deprecated settings access in example by @zzstoatzz in #18676
- Update rate limit and metadata retention docs by @desertaxle in #18674
- docs: add health check configuration for .serve() deployments by @zzstoatzz in #18677
- Add blurb for Redis auth by @bdalpe in #18682
- Fix the upgrade guide URL by @Janiczek in #18641
3.4.11 - Heads up, the repo man is coming for your deployment concurrency slot
Released on July 31, 2025 Enhancements ➕➕- Update deployment concurrency limits to use leasing by @desertaxle in #18567
- Update ad hoc installations to use
uvif available by @desertaxle in #18618
- Allow automations to notify when the triggers service is disabled by @fatih-acar in #18577
- Truncate oversized log messages to prevent ValueError and improve flow debuggability by @nrnavaneet in #18550
- Fix async locking error by generating a unique holder for each transaction by @desertaxle in #18607
prefect-azure
- Add
PREFECT_API_AUTH_STRINGto secure environment variables for ACI worker by @desertaxle in #18624
prefect-aws
- Add support for providing
PREFECT_API_AUTH_STRINGas a secret to ECS tasks by @desertaxle in #18620
prefect-dbt
- Handle dbt source types and source manifest references by @kevingrismore in #18570
- Omit compiled dbt code when it exceeds max asset description length by @kevingrismore in #18572
- Bump minimum
prefectversion forprefect-dbtby @desertaxle in #18623
prefect-gcp
- Add GCP secret support to
CloudRunV2Workerfor Prefect API key/auth string by @desertaxle in #18594 - Add GCP secret support to
CloudRunWorkerfor Prefect API credentials by @desertaxle in #18608 - Improve performance of uploads to GCP bucket by @zzstoatzz in #18571
prefect-kubernetes
- Allow specifying the key for an existing Kubernetes worker API auth string secret by @mitchnielsen in #18578
- Update @prefecthq/prefect-ui-library to version 3.13.2 by @marvin-robot in #18597
- Update API Reference for new
mdxifyversion by @zzstoatzz in #18568 - Add
--include-inheritanceto SDK reference docs builds by @kevingrismore in #18529 - Add more states to docs by @rcash in #18573
- Fix docstrings and regenerate SDK docs by @kevingrismore in #18579
- Fix example rendering in CLI ref by @zzstoatzz in #18580
- Update concurrency limit examples by @kevingrismore in #18604
- Add detail and options to the GitHub Quickstart by @kevingrismore in #18621
- Fix broken links in docs by @bdalpe in #18609
- Fix styling of certain code blocks and links in docs by @markupboy in #18625
3.4.10 - Lease and thank you
Released on July 22, 2025 Enhancements ➕➕- Update async
concurrencycontext manager to use leases by @desertaxle in #18522 - Update sync
concurrencycontext manager to use leases by @desertaxle in #18535 - Track concurrency limit lease creation time and use it to calculate occupancy seconds by @desertaxle in #18551
- Update @prefecthq/prefect-ui-library to version 3.13.1 by @marvin-robot in #18563
- Bump form-data from 4.0.0 to 4.0.4 in /ui by @dependabot[bot] in #18561
- Add note about
PREFECT_API_KEYin ecs guide by @zzstoatzz in #18547
3.4.9 - It’s the Lease We Can Do
Released on July 17, 2025 Enhancements ➕➕- Add in-memory concurrency lease storage by @desertaxle in #18481
- Add repossessor service by @desertaxle in #18492
- Document an official Docker Compose setup by @Toshaksha in #18509
- Delete logs when deleting a flow or task run by @johnnyg in #18517
- Allow infrastructure bound flows to be dispatched to existing workers by @desertaxle in #18472
- Add endpoint for acquiring concurrency slots with a lease by @desertaxle in #18512
- Add concurrency lease renewal endpoint by @desertaxle in #18513
- Add endpoint to decrement concurrency limits with a lease by @desertaxle in #18515
- Support templated —flow-run-name values in prefect deployment run by @nrnavaneet in #18511
- Fix Block secret serialization for fields with Union type by @desertaxle in #18491
- Remove restricted characters from dbt asset keys by @kevingrismore in #18484
- Fix MinIOCredentials documentation to use correct boto3 parameter name by @zzstoatzz in #18493
- Add labels to scheduled runs by @cicdw in #18524
- Raise
pydanticlower pin to 2.10.1 by @desertaxle in #18533 - ✨ fix(server): update Prefect server docs URL in startup message by @l-lumin in #18539
- Add
no-commit-to-branchhook to prevent accidental commits to main by @desertaxle in #18504 - Update @prefecthq/prefect-ui-library to version 3.13.0 by @marvin-robot in #18527
- Update dbt integration codeowners by @kevingrismore in #18483
- skip no-commit-to-branch check on merge to main by @zzstoatzz in #18505
- Enforce max asset description length by @jakekaplan in #18541
- Revert “Add —flow-run-name option to deployment run CLI with templating support” by @zzstoatzz in #18503
- Added support for setting flow run name in deployment CLI by @nrnavaneet in #18506
- Reintroduce the “Develop a custom worker” guide by @desertaxle in #18516
- expose new doc file in nav by @zzstoatzz in #18520
- a couple more edits to docker compose doc by @zzstoatzz in #18521
- Chore: update docs logo link from prefect.io => docs.prefect.io by @znicholasbrown in #18525
- add section on running work to completion by @zzstoatzz in #18537
- add db maintenance guide by @zzstoatzz in #18526
3.4.8 - Objects in Mirror Are JSONer Than They Appear
Released on July 10, 2025 Enhancements ➕➕- Add section on dynamic asset materialization by @cicdw in #18383
- Add —output and -o flags to all inspect commands, supporting ‘json’ by @cicdw in #18390
- add
prefect automation createcommand by @zzstoatzz in #18452 - Add setting for configuring custom headers by @cicdw in #18444
- Fix UI URL generation for FlowRunResponse in Slack automations by @zzstoatzz in #18407
- Fix broken Google-indexed documentation URLs with redirects by @zzstoatzz in #18409
- Fix worker crash when flow file is missing during hook execution by @zzstoatzz in #18424
- clear
pull_stepswhen no storage on deployment by @zzstoatzz in #18446 - Account for null pull steps in CLI by @cicdw in #18454
- Use UUID path converter in all places by @cicdw in #18455
- Fix visit_collection to properly handle shared references by @zzstoatzz in #18434
- fail loudly if we can’t connect to custom dask cluster by @zzstoatzz in #18432
- Snowflake: Handle pool and service timeouts in SPCS worker by @bjorhn in #18403
- Fix dbt logging behavior, improve context handling by @kevingrismore in #18377
- Resolve dbt profiles and other improvements by @kevingrismore in #18410
- Allow Prefect API key to be provided to an ECS tasks via an AWS secret by @desertaxle in #18474
- Update @prefecthq/prefect-design to version 2.15.2 by @marvin-robot in #18387
- Update @prefecthq/prefect-design to version 2.15.3 by @marvin-robot in #18418
- Update @prefecthq/prefect-design to version 2.15.4 by @marvin-robot in #18419
- Update @prefecthq/prefect-ui-library to version 3.12.17 by @marvin-robot in #18426
- Migrate integration tests from custom test runner to pytest by @desertaxle in #18450
- Deflake schedule statefulness test by @desertaxle in #18468
- Improve reliability of integration tests by @desertaxle in #18469
- Update test to connect to websocket with custom headers by @desertaxle in #18479
- update pins on core by @zzstoatzz in #18382
- Docs for
dbt-core==0.7.1by @kevingrismore in #18380 - begin “dependent settings” refactor by @zzstoatzz in #18029
- Fix api ref and open source links in new tab by @zzstoatzz in #18385
- Adds Worker healthcheck advanced guide by @cicdw in #18384
- Add section of examples on schedule CLI by @cicdw in #18386
- Add how to guide for running prefect server on windows by @cicdw in #18388
- Update Event trigger docs for match_related by @bdalpe in #18405
- Reformat all examples in docstrings by @cicdw in #18389
- Run api-ref generation to incorporate new examples syntax by @cicdw in #18406
- Update Slack footer link by @bdalpe in #18421
- add note about events in server metadata page by @zzstoatzz in #18459
- fix order of concept items by @zzstoatzz in #18460
- add How To Run Deployments doc by @zzstoatzz in #18464
- New quickstart by @kevingrismore in #18473
- chore(deps): bump vue from 3.5.16 to 3.5.17 in /ui by @dependabot[bot] in #18345
- Update CODEOWNERS by @cicdw in #18391
- Update cloud block urls for CLI by @kevingrismore in #18423
- Enhance BitBucket Credentials Block: Support Special Characters in Username and Escape Git URL Credentials by @nrnavaneet in #18447
- Fix errors in ECS worker related to ad hoc submission by @desertaxle in #18438
- remove ujson from deps by @zzstoatzz in #18448
- Migrate LocalFileSystem from sync_compatible to async_dispatch by @zzstoatzz in #18413
- use correct key name for basic auth local storage by @zzstoatzz in #18457
- Fix failing unit tests by @desertaxle in #18463
- Include run count in state change events by @kevingrismore in #18466
- Update
RetryFailedFlowsorchestration policy to clear retry type on exhausted retries by @desertaxle in #18462 - Remove dependency on
dbt_project.ymlby @kevingrismore in #18465 - Rename extra_headers to additional_headers by @vyagubov in #18478
3.4.7 - Stream a Little Stream of Logs
Released on June 26, 2025 Enhancements ➕➕- Add
not_any_filter forDeploymentFilterIdby @zzstoatzz in #18344 - Snowflake: Fixed error message when retrieving SPCS container status by @bjorhn in #18358
- Add —web flag to inspect runs from the command line by @zzstoatzz in #18370
- Add tags support to Automation objects by @chrisguidry in #18286
- Add tag filtering support for automations by @chrisguidry in #18288
- serialization performance improvements by @zzstoatzz in #18314
- Add client-side logs subscriber module by @chrisguidry in #18318
- Add
pause_deploymentandresume_deploymentclient methods by @zzstoatzz in #18336 - Track subflow results along with task results by @jakekaplan in #18338
- Add an axios middleware for intercepting errors by @znicholasbrown in #18365
- Materialize Prefect assets with dbt core by @kevingrismore in #18350
- fix
TimeoutErrorinresult_asyncwhen accessing results fromdelayby @zzstoatzz in #18280 - Fix for issue 18239 by @TWeatherston in #18284
- [prefect-aws] order env vars for task def equality by @zzstoatzz in #18309
- Fix serialization edge case in Prefect blocks by @zzstoatzz in #18363
- Fix asyncio loop issue when deploying with proxy by @zzstoatzz in #18374
- support
assetsforwith_optionsby @jesse-c in #18353 - Fix subprocess cleanup in prefect_test_harness to prevent ResourceWarning by @zzstoatzz in #18376
- Fix throwing no key exception by @emmanuel-ferdman in #18281
- Drop task_run.state_id foreign key to prevent deadlocks by @zzstoatzz in #18302
- bump lockfile and run pre-push hooks by @zzstoatzz in #18308
- remove
fetchkwarg from docstring and overloads by @zzstoatzz in #18311 - fix 3.9 test for prefect-shell by @zzstoatzz in #18014
- run pre-push hooks by @zzstoatzz in #18330
- Update @prefecthq/prefect-ui-library to version 3.12.15 by @marvin-robot in #18348
- add api ref for python sdk by @zzstoatzz in #18334
- Update @prefecthq/prefect-ui-library to version 3.12.16 by @marvin-robot in #18366
- Update @prefecthq/prefect-design to version 2.15.1 by @marvin-robot in #18378
- make warning debug by @zzstoatzz in #18327
- omit nested venv from docker builds by @zzstoatzz in #18328
- Enforce asset key characters + length by @jakekaplan in #18379
- add docs on HA self-hosted setups by @zzstoatzz in #18279
- improve self-host guide name by @zzstoatzz in #18289
- Move security settings into their own doc by @cicdw in #18316
- Add /api/logs/out websocket endpoint for live log streaming by @chrisguidry in #18315
- Update contribution guide to require pre-push hooks by @zzstoatzz in #18332
- dont need separate command for pre-push by @zzstoatzz in #18351
- Update API refs to remove old style bracket links by @cicdw in #18355
- Remove brackets from example by @cicdw in #18360
- Remove more example brackets by @cicdw in #18361
- add some api-ref examples and avoid right hand nav pollution by @zzstoatzz in #18367
- Add AGENTS.md documentation files by @zzstoatzz in #18248
- improve agent guidance and remove redundant info by @zzstoatzz in #18321
3.4.6 - Per My Last NOTIFY
Released on June 11, 2025 📰 Check out Prefect Assets! Bug Fixes 🐞- use pg notify/listen for multi-server automation synchronization by @zzstoatzz in #18266
- Remove versions of pydantic that produce thread safety issues by @cicdw in #18250
- fix
configvalidation for nested and constrained settings by @zzstoatzz in #18260 - add note about long migrations with big tables by @zzstoatzz in #18268
- Add automations prefix to validate route by @cicdw in #18277
- Fix nested materialization behavior by @jakekaplan in #18265
- Update @prefecthq/prefect-design to version 2.15.0 by @marvin-robot in #18274
- Add tests for UI variable duplication enhancement by @vilhenad in #18245
- Replaced deprecated logic in SPCS worker by @bjorhn in #18105
- remove reference to “pull work pools” by @zzstoatzz in #18256
- add note on
--no-promptby @zzstoatzz in #18261 - Fix incorrect links to SDK by @bdalpe in #18262
- Remove v2 file from docs by @cicdw in #18267
3.4.5 - Assets Have Been Materialized Internally
Released on June 07, 2025 To learn more, register for next week’s webinar here! New Features 💅- Add
Asset+[@materialize](https://github.com/materialize)ing tasks by @jakekaplan in #18230 - Emit
asset.referencedevents on materialization only by @jakekaplan in #18252 - Support emitting asset events for
DaskTaskRunnerby @jakekaplan in #18241 - Support emitting asset events for
RayTaskRunnerby @jakekaplan in #18242
- use kopf event for
occurredin forwarded prefect events by @zzstoatzz in #18226 - Subclassing to set the max_range per sandox environment (#18083) by @steveh-101 in #18232
- Early return bucket path to avoid duplicated prefix in GCS bucket by @zzstoatzz in #18237
- Attempt retries when task returns a failed state by @bunchesofdonald in #18240
- log warning if volumes set via create kwargs by @zzstoatzz in #18233
prefect-redis: fix min group id and deprecation warning by @zzstoatzz in #18215- fix SendGrid behavior when modifying instance by @zzstoatzz in #18219
- fix async retry fn typing by @zzstoatzz in #18247
- Update @prefecthq/prefect-design to version 2.14.26 by @marvin-robot in #18204
- lower bound pin uv by @zzstoatzz in #18216
- Update @prefecthq/prefect-ui-library to version 3.12.14 by @marvin-robot in #18234
- run
uv sync -Uby @zzstoatzz in #18251 - fix test assertion by @zzstoatzz in #18236
- Adds missing increments for events client metrics by @chrisguidry in #18246
- Docs refactor by @cicdw in #18208
- fix dead links by @zzstoatzz in #18243
- fix dead link to zombie flow runs by @zzstoatzz in #18244
- fix link to downstream-upstream trigger with serve by @zzstoatzz in #18249
3.4.4 - No Cache in the Banana Stand
Released on May 29, 2025 Enhancements ✨- Setting to disable cache globally by @zzstoatzz in #18195
- Add redis publisher/consumer settings by @zzstoatzz in #18160
- Enables CSRF protection support on internal server requests by @chrisguidry in #18157
- Corrects an infinite loop in the
CancellationCleanupservice by @chrisguidry in #18158 - Handle
Nonemetadata inprefect versionby @zzstoatzz in #18190 - Merge duplicate
extra_hostskwarg by @zzstoatzz in #18192 - fix fractional value handling in retry delay policy by @zzstoatzz in #18200
- multi-server setup fixes pt1 by @zzstoatzz in #18149
- Update @prefecthq/prefect-ui-library to version 3.12.13 by @marvin-robot in #18202
- Bump some upper bounds by @zzstoatzz in #18175
- Remove reimplementation of
from_template_and_valuesfrom ECS worker by @kevingrismore in #18201 - chore(deps): bump vue from 3.5.13 to 3.5.14 in /ui by @dependabot in #18101
- Add thread local context note by @zzstoatzz in #18147
- Add prefect managed compute usage to the docs by @jakekaplan in #18194
3.4.3 - You Return NotImplemented, I Return False. We Are Not The Same
Released on May 22, 2025 Enhancements ➕➕ Bug Fixes 🐞- fix
AttributeErrorduring equality check after args/kwargs deletion by @zzstoatzz in #18110 - handle list value envvar overrides for logging by @levzem in #18062
- minor log cleanup by @zzstoatzz in #18127
3.4.2 - Stay classy
Released on May 19, 2025 Enhancements ➕➕- Support serving
[@classmethod](https://github.com/classmethod)and[@staticmethod](https://github.com/staticmethod)flows by @vyagubov in #18065
- Make
RedisLockManagerpicklable for Ray/Dask compatibility by @zzstoatzz in #18018 - Fix parsing for
PREFECT_TASK_DEFAULT_RETRY_DELAY_SECONDSby @zzstoatzz in #18043 - Add boolean flag execute_commit for SELECT statements by @DSauterIntersport in #18095
- Fix bug where the runner would try to cancel a flow run that was not running by @desertaxle in #18108
- Update call method to handle string payloads by @qabilityp in #18058
- Update
jsonschemalower bound to 4.18+ by @zzstoatzz in #18036 - Vendor
uuid7implementation by @desertaxle in #18046
prefect-kubernetes
- Disable
kopfscanning forprefect-kubernetesobserver by @desertaxle in #18013
prefect-docker
- Add option to persist auto-generated Dockerfile by @AliLordLoss in #17866
prefect-shell
- Improve typing in
prefect-shellby @zzstoatzz in #18002
- Move generation hooks to pre-push by @desertaxle in #18010
- Task worker hygiene by @zzstoatzz in #18016
- Fix readme link by @zzstoatzz in #17999
- Run
prefect-clientsmoke tests against local server by @desertaxle in #18067 - Fix error in setup for client compatibility tests by @desertaxle in #18100
3.4.1 - Zen and the Art of Kubernetes Job Submission
Released on May 08, 2025 This release also ships with version 0.6.0 of prefect-kubernetes, featuring a revamped Kubernetes worker. The updated worker is more stateless, providing improved resiliency, enhanced event emission, and better crash detection capabilities. See #18004 for more details. Enhancements ➕➕- Support staticmethod and classmethod flow entrypoints by @vyagubov in #17976
- Adds support for
ANDed related resources in queries and triggers by @chrisguidry in #18003 - Refactor
Runnerto receive cancellation signals via websocket by @desertaxle in #17973 - Parse docker image strings with digests by @kevingrismore in #17987
- Add DB index for automation event followers by @zzstoatzz in #17981
- Update variable name validator to allow hyphens by @znicholasbrown in #17995
- Allow
flow.submitto be non-blocking for some infrastructure types by @desertaxle in #17992 - Uses UUIDv7 for the IDs of time-oriented objects by @chrisguidry in #18008
- Use correct secret in task worker websocket subscription by @zzstoatzz in #17975
- Update
Runnerto use a long-livedEventsClientby @desertaxle in #17986 - Catch
FileNotFoundErrorinfind_uv_binby @zzstoatzz in #17993 - Coalesce flow run start times with expected start times by @znicholasbrown in #17997
- Fix generated work pool storage config for GCS by @desertaxle in #18000
- Fix run scatterplot pagination by @znicholasbrown in #18009
- Refactor Kubernetes worker to reduce statefulness by @desertaxle in #18004
- Fix regex for Snowflake private keys by @zzstoatzz in #17985
- Bump vue-tsc from 2.2.8 to 2.2.10 in /ui by @dependabot in #17923
- Add test covering
.with_optionswhen used with aclassmethodflow by @vilhenad in #17647 - Consolidate validation on self-validating types by @zzstoatzz in #17994
- Add parameter form documentation by @zzstoatzz in #17972
- Add deployment versioning documentation by @kevingrismore in #17974
3.4.0 - Pour one out for the flow run notification service
Released on May 02, 2025 This release removes the deprecated flow run notifications feature. Existing notification policies will be automatically migrated to automations when the server starts after upgrading. Notifications will continue to work as expected—no user action is required. Enhancements ➕➕- Allow providing a commit sha to the
git_clonepull step by @kevingrismore in #17933 - Add default result storage for work pools by @desertaxle in #17953
- Remove flow run notifications by @desertaxle in #17939
- Add version info inference to
flow.deploy()by @kevingrismore in #17966
- handle heartbeat event in
wait_for_flow_runby @zzstoatzz in #17930 - add
parametersvalidator toDeploymentCreateFlowRunby @zzstoatzz in #17938 - Fix links to Specify flow parameters section by @bkkkk in #17942
- fix dead-lock between
ConcurrentTaskRunner,wait_for, and tag concurrency limits by @zzstoatzz in #17943 - Remove future garbage collection warning by @cicdw in #17954
- fix: Specify project during Cloud Run provision by @danfairs in #17965
- Remove
extra="forbid"config onWorkPoolStorageConfigurationby @desertaxle in #17960
- Update
uv.lockand fix ECS provisioner test errors by @desertaxle in #17928 - Remove unnecessary walrus by @zzstoatzz in #17957
- Add
logfiredependency group for performance exploration by @zzstoatzz in #17860 - Bump
astral-sh/setup-uvfrom 5 to 6 by @dependabot in #17906 - Update
wheneverrequirement from<0.8.0,>=0.7.3to>=0.7.3,<0.9.0by @dependabot in #17962 - Run integration tests against
prefect-clientby @desertaxle in #17967 - Update packaging requirement from
<24.3,>=21.3to>=21.3,<25.1by @dependabot in #17871 - Downgrade log to debug level by @cicdw in #17970
- Add vcs version types for Gitlab, Bitbucket, and Azure Devops by @kevingrismore in #17915
- Add documentation for Prefect Cloud GitHub app by @jakekaplan in #17911