Every deprecated-runtime migration produces the same shape of pain: you bump one version number, redeploy, and get hit with errors that look unrelated to each other but are all downstream of the same jump. The errors aren't random — for a given upgrade path, they show up in a fairly predictable order.
This is a map, not a new deep dive. Each line below is a real, verbatim error with its own fix already written up — this just sequences them by which upgrade produces them, so you know what's coming before you hit it instead of debugging one surprise at a time.
Path 1: Python 3.9 (or earlier) → Python 3.12 on Lambda
You're doing this because AWS blocks python3.9 creates/updates Feb 1 / Mar 3 2027 (and earlier versions are already blocked). Python 3.12 removed a batch of stdlib modules in one release (PEP 632/594), so this path front-loads the most breakage:
ModuleNotFoundError: No module named 'distutils' — removed in 3.12. Fix →






