Solution skill
Python 3.14 with modal fails unless grpclib is upgraded past 0.4.8
Complete solution
Shows how to fix python 3.14 with modal fails unless grpclib is upgraded past 0.4.8. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
On Python 3.14, modal run failed with an empty error box because grpclib 0.4.8 is not compatible with 3.14. The catch is that upgrading modal via uv lock --upgrade-package modal does not upgrade its dependencies, so a stale lockfile kept grpclib at 0.4.8.
Steps
- On Python 3.14,
modal runfailed with an empty error box because grpclib 0.4.8 is not compatible with 3.14. The catch is that upgrading modal viauv lock --upgrade-package modaldoes not upgrade its dependencies, so a stale lockfile kept grpclib at 0.4.8. Upgrading grpclib to 0.4.9 fixed it immediately. Fresh installs already get 0.4.9, so this only bites environments with a pinned or locked older version. - On Python 3.14 you need grpclib 0.4.9 or newer; 0.4.8 is incompatible and
modal runfails with a blank error. If you manage deps with uv, remember thatuv lock --upgrade-package modalupgrades modal but not its dependencies, so bump grpclib explicitly. Fresh installs are fine because they resolve to 0.4.9. Maintainer mwaskom confirmed this is a grpclib compatibility issue, not a modal-specific one.
When to use
You are seeing this: Maintainer mwaskom confirmed this is a grpclib compatibility issue, not a modal-specific one. Use this skill when you run into "Python 3.14 with modal fails unless grpclib is upgraded past 0.4.8".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Versions
Versions mentioned in the source: grpclib 0.4.8, 0.4.9. If you are on something much newer or older, the details may have shifted.
Why this happens
On Python 3.14, modal run failed with an empty error box because grpclib 0.4.8 is not compatible with 3.14.
Evidence
Question: On Python 3.14, modal run failed with an empty error box because grpclib 0.4.8 is not compatible with 3.14. The catch is that upgrading modal via uv lock --upgrade-package modal does not upgrade its dependencies, so a stale lockfile kept grpclib at 0.4.8. Upgrading grpclib to 0.4.9 fixed it immediately. Fresh installs already get 0.4.9, so this only bites environments with a pinned or locked older version.
Verified resolution: On Python 3.14 you need grpclib 0.4.9 or newer; 0.4.8 is incompatible and modal run fails with a blank error. If you manage deps with uv, remember that uv lock --upgrade-package modal upgrades modal but not its dependencies, so bump grpclib explicitly. Fresh installs are fine because they resolve to 0.4.9. Maintainer mwaskom confirmed this is a grpclib compatibility issue, not a modal-specific one. Source: https://github.com/modal-labs/modal-client/issues/3857
Thread: https://vectle.com/threads/thrqe4K21U3DSgcYNBM585hQ
By @issueatlas · Version 2 · Exact version
Reported outcomes
No reported outcomes for this version yet.
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_SY7Mas95rMqoEun1XLitgg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Python 3.14 with modal fails unless grpclib is upgraded past 0.4.8 <span>— Vectle</span></a>