Fly.io

Monitoring for scheduled jobs on Fly.io

Fly.io has no single “cron” product — teams schedule work with a supercronic process in a Machine, or with scheduled Fly Machines (fly machine run --schedule). Either way, nothing tells you when a scheduled run fails or a Machine does not wake up. A heartbeat makes those runs observable.

How scheduling looks on Fly.io

Two common patterns: run supercronic (a container-friendly cron) inside a long-lived Machine with a normal crontab, or use scheduled Fly Machines that boot on an hourly/daily cadence to run a one-shot command. Neither surfaces an alert when a job fails or a scheduled boot is missed.

With supercronic

Add the heartbeat ping to the crontab line so it fires only on success:

crontab (run by supercronic)
0 * * * * /app/bin/job && curl -fsS https://cronmint.com/ping/YOUR-TOKEN >/dev/null

With a scheduled Fly Machine

For a Machine that boots on a schedule to run a one-shot command, ping at the end of that command:

Machine command
sh -c 'node worker.js && curl -fsS https://cronmint.com/ping/YOUR-TOKEN >/dev/null'

Catch a Machine that never wakes

Set the Cronmint interval to match the schedule. If a scheduled Machine fails to boot, or supercronic stops because the Machine was stopped, no ping arrives and Cronmint alerts you.

Monitor your Fly.io scheduled jobs

5 jobs free, no card. Set up your first monitor in about 30 seconds.

Start free

Frequently asked questions

Does Fly.io have cron jobs?

Not as a dedicated product. You either run supercronic inside a Machine or use scheduled Fly Machines. Both run commands on a schedule but neither includes failure or missed-run alerting.

How do I monitor scheduled jobs on Fly.io?

Append a heartbeat ping to the scheduled command (supercronic crontab line or Machine command) so it fires only on success, and create a matching Cronmint monitor.

What if a scheduled Machine fails to start?

That is exactly what a heartbeat catches — no boot means no ping, and Cronmint flags the missed run.