Replies: 1 comment
|
@khadanja, it looks like you found a good way to handle this shortly after posting. Your current - name: e514
url: $E514
expectedStatusCodes:
- 200
__dangerous__body_down_if_text_missing: '"totalRequests":'That is stronger than checking only for the words “502 Bad Gateway”. It confirms both that the response is HTTP 200 and that it contains something specific to the real application. If Cloudflare, another reverse proxy or a generic error handler returns a different page, the expected text will be absent and Upptime will mark the service down. You have applied the same pattern to the other services too. For example: - name: HA
url: $HA
expectedStatusCodes:
- 200
__dangerous__body_down_if_text_missing: '<title>Home Assistant</title>'One small cleanup: the validateBody:
- doesNotContain: "502 Bad Gateway"
- doesNotContain: "error code: 502"The effective checks are Looking back at the original screenshot, there was also a timing issue. Your last recorded check before the Cloudflare error completed at 06:53:46 UTC and received HTTP 200. The screenshot was taken at 06:57:49, while the next scheduled Uptime CI run did not begin until 09:00:21. The green status was therefore the previous known result rather than Upptime classifying that particular 502 response as healthy. Your body checks will catch proxy error pages when a workflow actually runs, but they cannot detect an outage between runs. GitHub Actions schedules are best-effort and can be delayed even when the workflow uses a five-minute cron. For tighter monitoring, a self-hosted runner or a service with guaranteed polling intervals would still be needed. |
Uh oh!
There was an error while loading. Please reload this page.
All reactions