There are no batches since some date. In order:

  1. It lost its schedule or its site: an import does not carry either, and a schedule needs a site. Check both on the job.
  2. It is unpublished, or its schedule's end date has passed.
  3. It runs and fails, and the failures are not kept: batch persistence never or success leaves no trace of an error. Set always or errors.
  4. It ran and did nothing: the batches are there and succeed, but select no records, because a watermark is ahead of the data. That one does not look like a stopped job at all; see how watermarks interact with timezones.
  5. A run was missed: a schedule is due only in its exact minute, and a minute the scheduler missed is not caught up.

Nobody noticed because nothing is watching. Give every job a client relies on an outbound heartbeat or an inbound health check, watched by something outside the platform (monitoring).