FAQ & troubleshooting

Common questions and how to debug the most frequent issues, in rough order of how often they come up.

General

Why didn't I get an alert when the page changed?

The most common reasons, in order:

  • The LLM didn't consider the change meaningful given your description. Open the monitor's recent checks — you'll see the diff was processed but classified as not alert-worthy. Tighten the description (see Filters & descriptions).
  • The page didn't change in the part we extract. We strip boilerplate (nav, footer, ads) before hashing. If the change was in stripped content, we never see it.
  • The monitor is paused. Check the monitor detail page — auto-pause after 10 consecutive failed checks is a frequent surprise.
  • The channel failed. A delivery can fail (bad webhook URL, an unverified email recipient, an HTTP error from the receiver). Deliveries are attempted once, with no automatic retry.

Why did I get an alert for a change that wasn't meaningful?

Your description is probably too vague or doesn't mention what to ignore. Edit it to add an explicit “ignore X” clause for whatever you got noise about. The change applies to the next check.

How fresh are alerts?

Once a check detects a change, the alert is enqueued for delivery within seconds. End-to-end (page changes → you see the alert) depends on how often the monitor is checked, which is adaptive — pages that change often are checked more frequently, and higher plans get higher scheduling priority. Use Check now if you need to force an immediate check.

Do you store the page content?

We store the extracted text and rendered screenshots per check, kept for your plan's retention window (which varies by plan). Change summaries are retained with each detected change. Screenshots are served from Cloudflare R2.

Fetching & blocking

The monitor keeps failing with “blocked”.

The site is detecting and blocking our requests. The fetcher will automatically escalate to a headless browser and then to a residential proxy, but some sites block all three. Workarounds:

  • Switch to monitoring an API or feed the site publishes (/feed.xml, /api/...) — these are usually unprotected.
  • Watch a sitemap if the site has one — sitemaps tend to stay accessible.
  • For sites behind hard auth, run your own integration that posts to a Page Deltas webhook when their internal state changes.

The monitor returns 403/429 intermittently.

These are signs the site is throttling or blocking automated requests. The fetcher already escalates from plain HTTP to a headless browser and then to a residential proxy; if a page still blocks intermittently, watching a feed, an API, or a sitemap the site publishes is usually more reliable than the rendered page.

API & integration

How do I rotate an API key?

Create a new key, swap it into your client, then delete the old one. Keys are independent — issuing a new one doesn't invalidate existing ones.

Webhook verification keeps failing.

Three things to check:

  • You're hashing raw body bytes, not the parsed JSON. Frameworks that auto-parse JSON often discard the original bytes.
  • You're signing just the raw body — there is no timestamp and no separator. The header is X-Signature: sha256=<hex>.
  • You're comparing in constant time (timingSafeEqual in Node, hmac.compare_digest in Python).

Account

Can I change my organisation name?

The organisation name is set when you register (derived from your email) and isn't self-service editable today. Links use opaque IDs throughout, so nothing in the app depends on the name. If you need it changed, email support.

How do I export my data?

There is no one-click export yet. You can pull your monitors and their detected changes through the API (see the API reference), or email support and we'll help.

FAQ & troubleshooting · Documentation · Page Deltas