Troubleshooting

Check stays in "New" status

The check hasn't received its first ping yet. Verify that:

  • The ping URL is correct (check for typos in the UUID).
  • Your server can reach https://watchcron.com — try curl -v https://watchcron.com/ping/your-uuid manually.
  • There's no firewall or proxy blocking outbound HTTPS requests.

False "down" alerts

If you're getting alerts but your job is running fine:

  • Grace period too short — increase it to accommodate your job's typical duration plus a buffer.
  • Timezone mismatch — make sure the check's timezone matches the server running the cron job. A cron expression of 0 2 * * * in UTC runs at a different time than in America/New_York.
  • Ping not reaching WatchCron — check your crontab for output redirection that might suppress curl errors. Use curl -fsS (not curl -s) so errors are visible in cron mail.

Ping returns 404

The UUID in the ping URL doesn't match any active check. This usually means the check was deleted or the UUID was copied incorrectly. Go to your dashboard and copy the URL again.

Curl command times out

If curl hangs, add an explicit timeout: curl -fsS --max-time 10 --retry 3 URL. This ensures the curl call completes within 10 seconds even if there's a network issue, so it doesn't block your cron job.

Notifications not arriving

Check the following:

  • The notification channel is enabled (not disabled) in your project settings.
  • The channel is assigned to the check — creating a channel doesn't automatically connect it to all checks.
  • For email: check your spam folder. For Slack/Telegram: verify the webhook URL and bot token are still valid.
  • Use the Test button on the channel to send a sample notification and confirm it arrives.

API returns 401 Unauthorized

Your API key is missing, invalid, or expired. Generate a new key from your dashboard under API Keys. Make sure the Authorization header uses the format Bearer YOUR_API_KEY (with a space after "Bearer").