operations #
things that bit while running this on Modal.
-
a cold client gets a 303. while a container starts, Modal answers long-waiting requests with a redirect, and
typesafe-sdkdoesn't follow it. warm the app withjust health, which follows redirects, before pointing a client at it. -
old containers keep serving after a deploy until they scale down. to test new code right away, stop them by id:
uv run modal container list uv run modal container stop -y <id> -
modal app stopandcontainer stopabort without-ywhen not run interactively. -
an out-of-memory error leaves the container holding ~20 GB until it's replaced. stop it by id. with the kernel loading and rows grouped by length, 150-tool chunks fit on an L4.
-
modal app logsshows a recent window, not a container's startup. the startup summary (region, patched-row drift, warm-up time) is on/healthinstead. -
check where the container landed.
/healthreportsregion. without a region pin, an H100 landed in asia-south2. -
modal container exec <id> -- cmddoes not forward stdin. pass files base64-encoded in the command instead. -
modal billing:
uv run modal billing report --for today --show-resources. -
auth is Modal proxy auth (
requires_proxy_auth=True). unauthenticated requests get a 401 frommodal-httpin ~110 ms, and no container starts (checked with zero containers before and after). tokens are workspace-wide and are revoked only in the dashboard; the CLI can only create them.