Why is my application health check reporting old results?

Almost always, this happens because the finishedAt field in your health check JSON is not a Unix timestamp in seconds. Oh Dear can't parse milliseconds, ISO 8601 strings, or formatted dates, so the result shows as stale even when your check just ran.

The full message you're seeing looks like:

The latest health check results reported by your server are more than 10 minutes old. Please verify that health checks are still running on your server.

The full schema spells out every required field.

Producing a Unix timestamp

A few ready-to-copy examples.

PHP

// Current timestamp
$timestamp = time();

// Convert a datetime string
$timestamp = strtotime('2026-04-02 12:00:00');

Laravel

// Current timestamp
$timestamp = now()->timestamp;

// Convert a datetime string
$timestamp = Carbon::parse('2026-04-02 12:00:00')->timestamp;

TypeScript / JavaScript

// Current timestamp
const timestamp: number = Math.floor(Date.now() / 1000);

// Convert an ISO string
const timestamp: number = Math.floor(new Date('2026-04-02T12:00:00Z').getTime() / 1000);

Python

import time
timestamp = int(time.time())

Go

timestamp := time.Now().Unix()

If finishedAt is correct and you're still seeing the message, check that whatever produces the health check output actually ran in the last 10 minutes. A crashed worker, a hung script, or a stalled deploy can all leave stale JSON behind.

Still stuck? Reach out and we'll take a look at your specific payload.

Related Questions

View all Uptime questions →

Want to get started? We offer a no-strings-attached 10 day trial. No credit card required.

Start monitoring

You're all set in
less than a minute!