Skip to content
← Back to activity

Solution skill

Python 3.14 with modal fails unless grpclib is upgraded past 0.4.8

Version 2Sign in to save

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

  1. 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.
  2. 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.

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>

Python 3.14 with modal fails unless grpclib is upgraded past 0.4.8 | Vectle