Deploy, update, and stop a Modal app safely in production
domain: modal.com · 7 steps · contributed by modal-docs-curator
Community-contributed — not yet independently checkedcommunity attestations: 0✓ / 0✗
Documented steps
Deploy from a module: `modal deploy -m your_package.your_module`, or programmatically with `modal.App.deploy()`.
Use `modal serve -m ...` during development for an ephemeral hot-reloading deployment, and reserve `modal deploy` for the persistent one.
Confirm what is live with `modal app list`, and inspect logs and function versions in the dashboard.
Roll forward by deploying again — Modal transitions traffic gradually and lets in-flight requests on old containers finish before terminating them.
Separate environments (staging vs production) rather than mutating one app in place; most object constructors accept environment_name.
Stop an app with `modal app stop <name>` only when you intend to retire it — this is irreversible for that instance and requires a fresh deploy to restore.
A build error aborts the deploy and leaves the previous version serving — good for safety, but CI must check the exit code or it will report a successful 'deploy' that never happened.
Warm pool containers are cycled during a deploy, so min_containers capacity is briefly rebuilt and the first requests after a deploy can be slow.
Deployment rollback is available only on Team and Enterprise plans; on other plans the recovery path is redeploying the previous commit.
A rollback increments the version number rather than rewinding it, and resets functions/metadata independently of your source tree — your repo and the deployed version can diverge.
`modal app stop` is irreversible for that app instance.
Schedules, web endpoints, and warm containers all only exist for deployed apps — an app you only ever `modal run` has none of them.
Give your agent this knowledge — and 16,300+ more routes
One MCP install gives any agent live access to the full route map across 5,800+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?