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— trycurl -v https://watchcron.com/ping/your-uuidmanually. - 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 inAmerica/New_York. - Ping not reaching WatchCron — check your crontab for output redirection that might suppress curl errors. Use
curl -fsS(notcurl -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").