Free 3 min read

Is Modal Down?

Check live Modal Labs status — serverless GPU compute, Python cloud functions, custom containers, persistent volumes, and Secrets management. See recent incidents and set up free email alerts.

Modal live status

Modal — live status

Updated every 5 minutes. Full history at prismix.dev/service/modal.

Full status →

Quick check: is Modal down right now?

  1. Prismix: prismix.dev/service/modal — live status + 30-day uptime + incidents.
  2. API call: curl https://prismix.dev/api/v1/statuses | jq '.services[] | select(.id=="modal")'
  3. Direct test: curl https://api.modal.com/v1/apps -H "Authorization: Token YOUR_TOKEN_ID:YOUR_TOKEN_SECRET" — a 200 response confirms the API is reachable.

Common causes of "Modal not working"

  • "No GPU available" or long cold start — Modal provisions GPUs on demand; the first invocation ("cold start") can take 30–90 seconds for large models while the container is built and a GPU is scheduled. Warm containers are cached for ~10 minutes. Use @app.function(keep_warm=1) to keep a container alive and eliminate cold starts — note this consumes credits continuously even when idle.
  • Image build failing — Modal builds a custom Docker image for each deployment. pip install failures inside modal.Image.from_registry() often stem from dependency version conflicts; pin all package versions explicitly. Use .run_commands() to debug individual build steps. Image builds are cached and only rebuilt when the image definition changes.
  • Function timeout — The default function timeout is 60 seconds. Increase it with timeout=3600 in the @app.function decorator. Streaming functions need allow_concurrent_inputs=True. For long batch jobs, set timeout=86400 for up to 24 hours.
  • Volume mount not persisting datamodal.Volume is a persistent network volume; write to the mounted path (not /tmp). Call volume.commit() after writing to flush changes. Volumes are not automatically synchronized across parallel function calls — use a one-writer, multiple-readers pattern to avoid conflicts.
  • Secret not found in function — Secrets must be explicitly attached to the function: @app.function(secrets=[modal.Secret.from_name("my-secret")]). Verify the secret name exactly matches what is stored in the Modal dashboard (names are case-sensitive). Secrets are available as environment variables inside the function.
  • modal deploy not reflecting latest code changes — Modal caches function definitions; if you change Python code but not the Modal decorator itself, the old function version may still run. Explicitly run modal deploy app.py to force redeployment. Use modal shell for interactive debugging of the live container environment.

Set up free email alerts for Modal

  1. 1

    Sign in to Prismix

    Go to prismix.dev/sign-in — email OTP or GitHub sign-in.

  2. 2

    Star Modal

    On prismix.dev/service/modal, click the ☆ star icon.

  3. 3

    Alerts are live

    You'll get an email within minutes of any status change.

🔔

Stop manually checking — get alerts instead

Star Modal on Prismix and get emailed the moment status changes. Free, no credit card.

Monitor other serverless GPU platforms?

Full status dashboard: prismix.dev/status