# 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-sdk` doesn't follow it. warm the app with `just 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: ```bash uv run modal container list uv run modal container stop -y ``` - **`modal app stop` and `container stop` abort without `-y`** when 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 logs` shows a recent window, not a container's startup.** the startup summary (region, patched-row drift, warm-up time) is on `/health` instead. - **check where the container landed.** `/health` reports `region`. without a region pin, an H100 landed in asia-south2. - **`modal container exec -- cmd` does 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 from `modal-http` in ~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.