<@ULVA73B9P> have there any behavior change in map...
# marvin-ai
f
@Marvin have there any behavior change in map in prefect since 3.4.20?
m
thought for 162.7 seconds
Short answer: likely yes, there have been a few notable changes to mapped task behavior after 3.4.20. A few highlights you may notice when upgrading: - Faster failure propagation when collecting results: calling
.result()
on the list returned by
.map()
now fails fast on the first error while still returning results in the original order. - New
opaque(...)
annotation to improve performance when passing large objects into tasks (resolve the top-level value but skip deep traversal), alongside existing
quote(...)
and
unmapped(...)
. - Clarification/change around
unmapped(...)
with mutables: the same object is shared by reference across mapped runs, so mutating it inside tasks can cause racey behavior; copy per run if needed. - Improvements and fixes for
ProcessPoolTaskRunner
with
wait_for
so mapped tasks can correctly wait on upstream completions without blocking scheduling. - Fixes to avoid rare, false task dependencies stemming from Python object id reuse in long-running flows. If you can share the exact version you’re upgrading to (e.g., 3.5.x, 3.6.x), I can pinpoint the exact changes that apply and link the specific release notes. Helpful links: - Prefect releases and changelog: Prefect releases - Mapping docs: Prefect docs (search for “mapping”, “unmapped/quote/opaque”)