# Prefect: what changed from 2 to 3 - Product: Prefect (https://whatsnew.fyi/product/prefect) - Vendor: Prefect - Range: changelog entries numbered after 2.20.26 up to and including 3.8.5, stable releases only - Entries below: 5 releases (newest first) - Resolved: 2 is 2.20.26 and 3 is 3.8.5, the newest stable release of each major we track - Carrying security changes: 0 · CVEs mentioned: 0 · Mentioning breaking changes: 0 · Removing or deprecating something: 0 - Page: https://whatsnew.fyi/product/prefect/compare/2...3 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (75 changes, grouped by kind) ### Added #### 3.8.5 (2026-09-03) - Suggest existing deployment tags in the V2 deployments filter - Add parameter overrides to the deployment schedule dialog - Add id fields and matching filters to automation count and filter models #### 3.8.4 (2026-08-25) - Add time selection to the interval schedule anchor date - Add a configurable base directory for included files - Add an index on flow_run.deployment_id - Open a parameters dialog when a quick run needs required parameters #### 3.8.3 (2026-08-13) - Show elapsed time for running flow runs in the V2 UI flow run header #### 3.8.2 (2026-08-07) - Add removable chips for multi-select enum array fields - Send a Prefect User-Agent on WebSocket handshakes - Virtualize the timezone select option list #### 3.8.1 (2026-07-30) - Show tooltips for flow run state tabs in the V2 UI ### Changed #### 3.8.5 (2026-09-03) - Use current settings for resource label validation - Use indexed flow run cleanup with separate orphan reconciliation - Reduce event persister INSERT compilation CPU #### 3.8.3 (2026-08-13) - Stop fragmenting task run recorder bulk upserts - Engage the auto-uv run launcher for process workers - Block submission when a required array parameter is emptied in the V2 UI ### Fixed #### 3.8.5 (2026-09-03) - Support new Microsoft Teams and Power Automate webhook URLs - Keep run-context related resources within the maximum an event permits - Keep enum selection in the Quick Run dialog from navigating away - Keep deployment concurrency lease across flow retry transitions - Fix scheduled flow run polling - Remove the unbounded flow run count from the dashboard empty-state check - Avoid importing pandas when prefect.cache_policies is imported - Keep the flow run tooltip on the hovered run while moving into it - Use the const value when a literal branch is selected in a schema form - Fix dashboard flow run query ordering - Avoid overwriting a final flow run state with Crashed after a post-completion SIGTERM - Fix the automation SDK filter model - Apply jitter around the backed-off interval in critical_service_loop - Fix spacing between items in the create flow run form #### 3.8.4 (2026-08-25) - Prevent runners from overwriting handled flow-run outcomes - Fix ProcessWorker auto-uv after pull steps - Honor a prefetch_seconds of 0 in BaseWorker - Use total_seconds in the worker polling healthcheck - Bind-mount the sdist so it stops shipping in the published image - Bind-mount the sdist in client/Dockerfile so it stops shipping in the client image - Fix the lateness label on flow run cards in the V2 UI - Fix readable run durations in the V2 UI - Carry rounded-up seconds into larger units in the V2 UI - Fix invisible run graph nodes by passing skipUpdateTransform=false - Fix inconsistent deployment status display on the flow detail page in the V2 UI - Do not overwrite in-flight schema form edits with stale parent values #### 3.8.3 (2026-08-13) - Preserve a statement cache size of 0 - Reject option-like Git branch values - Stop leaking watcher-thread timeout enforcers - Send basic auth header on the self-hosted events WebSocket handshake - Confirm suspension events against the flow run instead of state-by-id - Select a valid anyOf branch for record values in V2 UI schema forms - Select the matching enum branch for anyOf string values in V2 UI schema forms - Persist explicit null values from the schema form null branch - Fix nested deployment parameter rendering in the V2 UI - Render sanitized inline HTML in markdown content in the V2 UI - Stop applying inline code styling inside fenced code blocks in the V2 UI #### 3.8.2 (2026-08-07) - Show all timezones in the timezone select - Propagate array item edits and link deployments from the flow page - Preserve an empty array when clearing list parameter selections - Open the date picker calendar on the selected date's month - Normalize settings paths for cross-OS context transport - Raise ValueError for negative timeouts in PrefectFutureList.result, as_completed, and wait - Fix a tooltip hiding behind a chart row - Release concurrency leases granted to callers that were cancelled mid-acquire - Keep setuptools in conda Docker images #### 3.8.1 (2026-07-30) - Make ConcurrencyContext exit cleanup best-effort - Keep worker startup alive when the Prefect API is unreachable - Make PrefectFutureList.result timeout message reachable - Render ANSI color escape codes in flow run logs in the V2 UI - Confirm the exact suspension transition reported by a suspension event - Allow any float precision on schema number inputs in the V2 UI - Reject unknown fields for FlowRunFilter and its nested criteria - Relinquish evicted flow runs to infrastructure retry - Fix saved block parameters in deployments - Preserve subprocesses after output stream errors - Clear stale expiration entries when a repossessed lease is missing ## Release notes ### 3.8.5 — 3.8.5 - A little jitter never hurt anybody - Date: 2026-09-03 - Version: 3.8.5 - Original notes: https://github.com/PrefectHQ/prefect/releases/tag/3.8.5 - Permalink: https://whatsnew.fyi/product/prefect/releases/3.8.5 - **added** — Suggest existing deployment tags in the V2 deployments filter - **changed** — Use current settings for resource label validation - **added** — Add parameter overrides to the deployment schedule dialog - **changed** — Use indexed flow run cleanup with separate orphan reconciliation - **added** — Add id fields and matching filters to automation count and filter models - **changed** — Reduce event persister INSERT compilation CPU - **fixed** — Support new Microsoft Teams and Power Automate webhook URLs - **fixed** — Keep run-context related resources within the maximum an event permits - **fixed** — Keep enum selection in the Quick Run dialog from navigating away - **fixed** — Keep deployment concurrency lease across flow retry transitions - **fixed** — Fix scheduled flow run polling - **fixed** — Remove the unbounded flow run count from the dashboard empty-state check - **fixed** — Avoid importing pandas when prefect.cache_policies is imported - **fixed** — Keep the flow run tooltip on the hovered run while moving into it - **fixed** — Use the const value when a literal branch is selected in a schema form - **fixed** — Fix dashboard flow run query ordering - **fixed** — Avoid overwriting a final flow run state with Crashed after a post-completion SIGTERM - **fixed** — Fix the automation SDK filter model - **fixed** — Apply jitter around the backed-off interval in critical_service_loop - **fixed** — Fix spacing between items in the create flow run form **Enhancements ➕➕** * Suggest existing deployment tags in the V2 deployments filter by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22939](https://github.com/PrefectHQ/prefect/pull/22939) * Use current settings for resource label validation by [@chuqCTC](https://github.com/chuqCTC) in [#22959](https://github.com/PrefectHQ/prefect/pull/22959) * Add parameter overrides to the deployment schedule dialog by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22805](https://github.com/PrefectHQ/prefect/pull/22805) * Use indexed flow run cleanup with separate orphan reconciliation by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22875](https://github.com/PrefectHQ/prefect/pull/22875) * Add `id` fields and matching filters to automation count and filter models by [@znicholasbrown](https://github.com/znicholasbrown) in [#22944](https://github.com/PrefectHQ/prefect/pull/22944) * Reduce event persister `INSERT` compilation CPU by [@chuqCTC](https://github.com/chuqCTC) in [#22961](https://github.com/PrefectHQ/prefect/pull/22961) **Bug Fixes 🐞** * Support new Microsoft Teams and Power Automate webhook URLs by [@Roshan931](https://github.com/Roshan931) in [#22908](https://github.com/PrefectHQ/prefect/pull/22908) * Keep run-context related resources within the maximum an event permits by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22835](https://github.com/PrefectHQ/prefect/pull/22835) * Keep enum selection in the Quick Run dialog from navigating away by [@vyagubov](https://github.com/vyagubov) in [#22953](https://github.com/PrefectHQ/prefect/pull/22953) * Keep deployment concurrency lease across flow retry transitions by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22886](https://github.com/PrefectHQ/prefect/pull/22886) * Fix scheduled flow run polling by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22970](https://github.com/PrefectHQ/prefect/pull/22970) * Remove the unbounded flow run count from the dashboard empty-state check by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22920](https://github.com/PrefectHQ/prefect/pull/22920) * Avoid importing `pandas` when `prefect.cache_policies` is imported by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22999](https://github.com/PrefectHQ/prefect/pull/22999) * Keep the flow run tooltip on the hovered run while moving into it by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#23012](https://github.com/PrefectHQ/prefect/pull/23012) * Use the `const` value when a literal branch is selected in a schema form by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22911](https://github.com/PrefectHQ/prefect/pull/22911) * Fix dashboard flow run query ordering by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22917](https://github.com/PrefectHQ/prefect/pull/22917) * Avoid overwriting a final flow run state with `Crashed` after a post-completion `SIGTERM` by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#23026](https://github.com/PrefectHQ/prefect/pull/23026) * Fix the automation SDK filter model by [@znicholasbrown](https://github.com/znicholasbrown) in [#22945](https://github.com/PrefectHQ/prefect/pull/22945) * Apply jitter around the backed-off interval in `critical_service_loop` by [@ethanstoner](https://github.com/ethanstoner) in [#22980](https://github.com/PrefectHQ/prefect/pull/22980) * Fix spacing between items in the create flow run form by [@uinstinct](https://github.com/uinstinct) in [#23000](https://github.com/PrefectHQ/prefect/pull/23000) * Center the plus icon in the automation deployment combobox by [@uinstinct](https://github.com/uinstinct) in [#23014](https://github.com/PrefectHQ/prefect/pull/23014) * Fix border rounding in the date selector by [@uinstinc _[Truncated at 4000 characters — full notes: https://github.com/PrefectHQ/prefect/releases/tag/3.8.5]_ ### 3.8.4 — 3.8.4 - Seconds of the world, unite! - Date: 2026-08-25 - Version: 3.8.4 - Original notes: https://github.com/PrefectHQ/prefect/releases/tag/3.8.4 - Permalink: https://whatsnew.fyi/product/prefect/releases/3.8.4 - **added** — Add time selection to the interval schedule anchor date - **added** — Add a configurable base directory for included files - **added** — Add an index on flow_run.deployment_id - **added** — Open a parameters dialog when a quick run needs required parameters - **fixed** — Prevent runners from overwriting handled flow-run outcomes - **fixed** — Fix ProcessWorker auto-uv after pull steps - **fixed** — Honor a prefetch_seconds of 0 in BaseWorker - **fixed** — Use total_seconds in the worker polling healthcheck - **fixed** — Bind-mount the sdist so it stops shipping in the published image - **fixed** — Bind-mount the sdist in client/Dockerfile so it stops shipping in the client image - **fixed** — Fix the lateness label on flow run cards in the V2 UI - **fixed** — Fix readable run durations in the V2 UI - **fixed** — Carry rounded-up seconds into larger units in the V2 UI - **fixed** — Fix invisible run graph nodes by passing skipUpdateTransform=false - **fixed** — Fix inconsistent deployment status display on the flow detail page in the V2 UI - **fixed** — Do not overwrite in-flight schema form edits with stale parent values **Enhancements ➕➕** * Add time selection to the interval schedule anchor date by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22872](https://github.com/PrefectHQ/prefect/pull/22872) * Add a configurable base directory for included files by [@desertaxle](https://github.com/desertaxle) in [#22855](https://github.com/PrefectHQ/prefect/pull/22855) * Add an index on `flow_run.deployment_id` by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22890](https://github.com/PrefectHQ/prefect/pull/22890) * Open a parameters dialog when a quick run needs required parameters by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22903](https://github.com/PrefectHQ/prefect/pull/22903) **Bug Fixes 🐞** * Prevent runners from overwriting handled flow-run outcomes by [@desertaxle](https://github.com/desertaxle) in [#22821](https://github.com/PrefectHQ/prefect/pull/22821) * Fix `ProcessWorker` auto-uv after pull steps by [@desertaxle](https://github.com/desertaxle) in [#22857](https://github.com/PrefectHQ/prefect/pull/22857) * Honor a `prefetch_seconds` of 0 in `BaseWorker` by [@ckarnell](https://github.com/ckarnell) in [#22836](https://github.com/PrefectHQ/prefect/pull/22836) * Use `total_seconds` in the worker polling healthcheck by [@tushardev-365](https://github.com/tushardev-365) in [#22900](https://github.com/PrefectHQ/prefect/pull/22900) * Bind-mount the sdist so it stops shipping in the published image by [@sujeito-operator](https://github.com/sujeito-operator) in [#22832](https://github.com/PrefectHQ/prefect/pull/22832) * Bind-mount the sdist in `client/Dockerfile` so it stops shipping in the client image by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22833](https://github.com/PrefectHQ/prefect/pull/22833) * Fix the lateness label on flow run cards in the V2 UI by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22896](https://github.com/PrefectHQ/prefect/pull/22896) * Fix readable run durations in the V2 UI by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22922](https://github.com/PrefectHQ/prefect/pull/22922) * Carry rounded-up seconds into larger units in the V2 UI by [@nolantonio](https://github.com/nolantonio) in [#22915](https://github.com/PrefectHQ/prefect/pull/22915) * Fix invisible run graph nodes by passing `skipUpdateTransform=false` by [@vyagubov](https://github.com/vyagubov) in [#22849](https://github.com/PrefectHQ/prefect/pull/22849) * Fix inconsistent deployment status display on the flow detail page in the V2 UI by [@vyagubov](https://github.com/vyagubov) in [#22901](https://github.com/PrefectHQ/prefect/pull/22901) * Do not overwrite in-flight schema form edits with stale parent values by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22905](https://github.com/PrefectHQ/prefect/pull/22905) **Integrations & Dependencies 🤝** * Follow CodeQL v4 releases by [@prefect-renovate](https://github.com/prefect-renovate)[bot] in [#22924](https://github.com/PrefectHQ/prefect/pull/22924) **Development & Tidiness 🧹** * Add repository code review guidance by [@desertaxle](https://github.com/desertaxle) in [#22906](https://github.com/PrefectHQ/prefect/pull/22906) * Use `pytest-split` for Python 3.12/Postgres tests by [@desertaxle](https://github.com/desertaxle) in [#22869](https://github.com/PrefectHQ/prefect/pull/22869) * Add opt-in Logfire test profiling by [@desertaxle](https://github.com/desertaxle) in [#22852](https://github.com/PrefectHQ/prefect/pull/22852) * Pass the release ref through env in the prerelease tag check by [@WAHIB-EL-KHADIRI](https://github.com/WAHIB-EL-KHADIRI) in [#22882](https://github.com/PrefectHQ/prefect/pull/22882) * Make tests independent of ambient OpenTelemetry context and non-setting `PREFECT_` env vars by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22867](https://github.com/Pr _[Truncated at 4000 characters — full notes: https://github.com/PrefectHQ/prefect/releases/tag/3.8.4]_ ### 3.8.3 — 3.8.3 - Insert batching pun here - Date: 2026-08-13 - Version: 3.8.3 - Original notes: https://github.com/PrefectHQ/prefect/releases/tag/3.8.3 - Permalink: https://whatsnew.fyi/product/prefect/releases/3.8.3 - **changed** — Stop fragmenting task run recorder bulk upserts - **changed** — Engage the auto-uv run launcher for process workers - **added** — Show elapsed time for running flow runs in the V2 UI flow run header - **changed** — Block submission when a required array parameter is emptied in the V2 UI - **fixed** — Preserve a statement cache size of 0 - **fixed** — Reject option-like Git branch values - **fixed** — Stop leaking watcher-thread timeout enforcers - **fixed** — Send basic auth header on the self-hosted events WebSocket handshake - **fixed** — Confirm suspension events against the flow run instead of state-by-id - **fixed** — Select a valid anyOf branch for record values in V2 UI schema forms - **fixed** — Select the matching enum branch for anyOf string values in V2 UI schema forms - **fixed** — Persist explicit null values from the schema form null branch - **fixed** — Fix nested deployment parameter rendering in the V2 UI - **fixed** — Render sanitized inline HTML in markdown content in the V2 UI - **fixed** — Stop applying inline code styling inside fenced code blocks in the V2 UI **Enhancements ➕➕** * Stop fragmenting task run recorder bulk upserts by [@chuqCTC](https://github.com/chuqCTC) in [#22808](https://github.com/PrefectHQ/prefect/pull/22808) * Engage the auto-`uv run` launcher for process workers by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22723](https://github.com/PrefectHQ/prefect/pull/22723) * Show elapsed time for running flow runs in the V2 UI flow run header by [@vyagubov](https://github.com/vyagubov) in [#22811](https://github.com/PrefectHQ/prefect/pull/22811) * Block submission when a required array parameter is emptied in the V2 UI by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22750](https://github.com/PrefectHQ/prefect/pull/22750) **Bug Fixes 🐞** * Preserve a statement cache size of 0 by [@ckarnell](https://github.com/ckarnell) in [#22767](https://github.com/PrefectHQ/prefect/pull/22767) * Reject option-like Git branch values by [@desertaxle](https://github.com/desertaxle) in [#22819](https://github.com/PrefectHQ/prefect/pull/22819) * Stop leaking watcher-thread timeout enforcers by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22817](https://github.com/PrefectHQ/prefect/pull/22817) * Send basic auth header on the self-hosted events WebSocket handshake by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22813](https://github.com/PrefectHQ/prefect/pull/22813) * Confirm suspension events against the flow run instead of state-by-id by [@joshuastagner](https://github.com/joshuastagner) in [#22820](https://github.com/PrefectHQ/prefect/pull/22820) * Select a valid `anyOf` branch for record values in V2 UI schema forms by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22806](https://github.com/PrefectHQ/prefect/pull/22806) * Select the matching enum branch for `anyOf` string values in V2 UI schema forms by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22754](https://github.com/PrefectHQ/prefect/pull/22754) * Persist explicit null values from the schema form null branch by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22774](https://github.com/PrefectHQ/prefect/pull/22774) * Fix nested deployment parameter rendering in the V2 UI by [@Abhinav0905](https://github.com/Abhinav0905) in [#22760](https://github.com/PrefectHQ/prefect/pull/22760) * Render sanitized inline HTML in markdown content in the V2 UI by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22763](https://github.com/PrefectHQ/prefect/pull/22763) * Stop applying inline code styling inside fenced code blocks in the V2 UI by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22771](https://github.com/PrefectHQ/prefect/pull/22771) **Development & Tidiness 🧹** * Tidy up the task run recorder bulk upsert path by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22814](https://github.com/PrefectHQ/prefect/pull/22814) * Make `FileSystemLockManager` hold-timeout tests time-independent by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22716](https://github.com/PrefectHQ/prefect/pull/22716) **Documentation 📓** * Close an unterminated code block in a `flows` docstring by [@cbrown1234](https://github.com/cbrown1234) in [#22802](https://github.com/PrefectHQ/prefect/pull/22802) * Update the order of the guide by [@anthonyylee](https://github.com/anthonyylee) in [#22687](https://github.com/PrefectHQ/prefect/pull/22687) * Fix the `.deploy()` example in the versioning how-to guide by [@uinstinct](https://github.com/uinstinct) in [#22810](https://github.com/PrefectHQ/prefect/pull/22810) **Full Changelog**: https://github.com/PrefectHQ/prefect/compare/3.8.2...3.8.3 ### 3.8.2 — 3.8.2 - Array we there yet? - Date: 2026-08-07 - Version: 3.8.2 - Original notes: https://github.com/PrefectHQ/prefect/releases/tag/3.8.2 - Permalink: https://whatsnew.fyi/product/prefect/releases/3.8.2 - **added** — Add removable chips for multi-select enum array fields - **added** — Send a Prefect User-Agent on WebSocket handshakes - **added** — Virtualize the timezone select option list - **fixed** — Show all timezones in the timezone select - **fixed** — Propagate array item edits and link deployments from the flow page - **fixed** — Preserve an empty array when clearing list parameter selections - **fixed** — Open the date picker calendar on the selected date's month - **fixed** — Normalize settings paths for cross-OS context transport - **fixed** — Raise ValueError for negative timeouts in PrefectFutureList.result, as_completed, and wait - **fixed** — Fix a tooltip hiding behind a chart row - **fixed** — Release concurrency leases granted to callers that were cancelled mid-acquire - **fixed** — Keep setuptools in conda Docker images **Enhancements ➕➕** * Add removable chips for multi-select enum array fields by [@vyagubov](https://github.com/vyagubov) in [#22738](https://github.com/PrefectHQ/prefect/pull/22738) * Send a Prefect `User-Agent` on WebSocket handshakes by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22706](https://github.com/PrefectHQ/prefect/pull/22706) * Virtualize the timezone select option list by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22740](https://github.com/PrefectHQ/prefect/pull/22740) **Bug Fixes 🐞** * Show all timezones in the timezone select by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22686](https://github.com/PrefectHQ/prefect/pull/22686) * Propagate array item edits and link deployments from the flow page by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22726](https://github.com/PrefectHQ/prefect/pull/22726) * Preserve an empty array when clearing list parameter selections by [@vyagubov](https://github.com/vyagubov) in [#22737](https://github.com/PrefectHQ/prefect/pull/22737) * Open the date picker calendar on the selected date's month by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22699](https://github.com/PrefectHQ/prefect/pull/22699) * Normalize settings paths for cross-OS context transport by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22700](https://github.com/PrefectHQ/prefect/pull/22700) * Raise `ValueError` for negative timeouts in `PrefectFutureList.result`, `as_completed`, and `wait` by [@kingsley-123](https://github.com/kingsley-123) in [#22692](https://github.com/PrefectHQ/prefect/pull/22692) * Fix a tooltip hiding behind a chart row by [@uinstinct](https://github.com/uinstinct) in [#22707](https://github.com/PrefectHQ/prefect/pull/22707) * Release concurrency leases granted to callers that were cancelled mid-acquire by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22621](https://github.com/PrefectHQ/prefect/pull/22621) * Keep `setuptools` in conda Docker images by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22743](https://github.com/PrefectHQ/prefect/pull/22743) **Development & Tidiness 🧹** * Migrate to Renovate and retire Dependabot by [@jamiezieziula](https://github.com/jamiezieziula) in [#22719](https://github.com/PrefectHQ/prefect/pull/22719) **Documentation 📓** * Document how `follows` establishes event ordering for automation triggers by [@chrisguidry](https://github.com/chrisguidry) in [#22710](https://github.com/PrefectHQ/prefect/pull/22710) * Correct event trigger examples to match actual matching semantics by [@bunchesofdonald](https://github.com/bunchesofdonald) in [#22690](https://github.com/PrefectHQ/prefect/pull/22690) * Fix incorrect examples in the global concurrency limits docs by [@uinstinct](https://github.com/uinstinct) in [#22724](https://github.com/PrefectHQ/prefect/pull/22724) * Fix text not visible in an image by [@uinstinct](https://github.com/uinstinct) in [#22661](https://github.com/PrefectHQ/prefect/pull/22661) * Fix docstring `Args` entries that name a parameter the function does not take by [@darkdi](https://github.com/darkdi) in [#22733](https://github.com/PrefectHQ/prefect/pull/22733) * List 3.7 and 3.8 release notes and link the Prefect Cloud changelog by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22702](https://github.com/PrefectHQ/prefect/pull/22702) **Full Changelog**: https://github.com/PrefectHQ/prefect/compare/3.8.1...3.8.2 ### 3.8.1 — 3.8.1 - To relinquish, perchance to retry - Date: 2026-07-30 - Version: 3.8.1 - Original notes: https://github.com/PrefectHQ/prefect/releases/tag/3.8.1 - Permalink: https://whatsnew.fyi/product/prefect/releases/3.8.1 - **added** — Show tooltips for flow run state tabs in the V2 UI - **fixed** — Make ConcurrencyContext exit cleanup best-effort - **fixed** — Keep worker startup alive when the Prefect API is unreachable - **fixed** — Make PrefectFutureList.result timeout message reachable - **fixed** — Render ANSI color escape codes in flow run logs in the V2 UI - **fixed** — Confirm the exact suspension transition reported by a suspension event - **fixed** — Allow any float precision on schema number inputs in the V2 UI - **fixed** — Reject unknown fields for FlowRunFilter and its nested criteria - **fixed** — Relinquish evicted flow runs to infrastructure retry - **fixed** — Fix saved block parameters in deployments - **fixed** — Preserve subprocesses after output stream errors - **fixed** — Clear stale expiration entries when a repossessed lease is missing **Enhancements ➕➕** * Show tooltips for flow run state tabs in the V2 UI by [@uinstinct](https://github.com/uinstinct) in [#22617](https://github.com/PrefectHQ/prefect/pull/22617) **Bug Fixes 🐞** * Make `ConcurrencyContext` exit cleanup best-effort by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22619](https://github.com/PrefectHQ/prefect/pull/22619) * Keep worker startup alive when the Prefect API is unreachable by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22640](https://github.com/PrefectHQ/prefect/pull/22640) * Make `PrefectFutureList.result` timeout message reachable by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22634](https://github.com/PrefectHQ/prefect/pull/22634) * Render ANSI color escape codes in flow run logs in the V2 UI by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22653](https://github.com/PrefectHQ/prefect/pull/22653) * Confirm the exact suspension transition reported by a suspension event by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22649](https://github.com/PrefectHQ/prefect/pull/22649) * Allow any float precision on schema number inputs in the V2 UI by [@AJ-ing](https://github.com/AJ-ing) in [#22643](https://github.com/PrefectHQ/prefect/pull/22643) * Reject unknown fields for `FlowRunFilter` and its nested criteria by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22659](https://github.com/PrefectHQ/prefect/pull/22659) * Relinquish evicted flow runs to infrastructure retry by [@chuqCTC](https://github.com/chuqCTC) in [#22622](https://github.com/PrefectHQ/prefect/pull/22622) * Fix saved block parameters in deployments by [@desertaxle](https://github.com/desertaxle) in [#22568](https://github.com/PrefectHQ/prefect/pull/22568) * Preserve subprocesses after output stream errors by [@desertaxle](https://github.com/desertaxle) in [#22573](https://github.com/PrefectHQ/prefect/pull/22573) * Clear stale expiration entries when a repossessed lease is missing by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22657](https://github.com/PrefectHQ/prefect/pull/22657) **Development & Tidiness 🧹** * Fix codespell error on unit test `TEST_BLOCK_CODE_BAD_SYNTAX` on Windows by [@g-ringeisen](https://github.com/g-ringeisen) in [#22642](https://github.com/PrefectHQ/prefect/pull/22642) * Drop unused global `mintlify-scrape` install from static analysis by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22677](https://github.com/PrefectHQ/prefect/pull/22677) **Documentation 📓** * Add missing line break after imports in documentation examples by [@uinstinct](https://github.com/uinstinct) in [#22627](https://github.com/PrefectHQ/prefect/pull/22627) * Document `Submitting` and `InfrastructurePending` states by [@devin-ai-integration](https://github.com/devin-ai-integration)[bot] in [#22660](https://github.com/PrefectHQ/prefect/pull/22660) * Fix flows documentation link to the getting started page by [@uinstinct](https://github.com/uinstinct) in [#22648](https://github.com/PrefectHQ/prefect/pull/22648) **Full Changelog**: https://github.com/PrefectHQ/prefect/compare/3.8.0...3.8.1