# When something fails

> What visitors see when the tag is blocked, rules fail to load or a location is unknown, and how to switch rules and the widget off.

GeoEngage is built so that when something goes wrong, your visitors get your page as you built it. A rule that can't run is skipped, and the page is never held back or left blank to wait for one. This page lists what the widget does in each case, and how to switch things off yourself.

## What visitors get when something fails

| What goes wrong | What the visitor sees | What happens |
| --- | --- | --- |
| The tag is blocked by an ad blocker, a network error or a [Content Security Policy](https://geoengage.app/docs/troubleshooting#a-content-security-policy-blocks-the-widget) | Your page, as if GeoEngage wasn't installed | Nothing runs, so no rule is applied and no visit is recorded. |
| The widget loads but your rules can't be fetched | The last rules this browser received, up to 24 hours old | With no saved copy, no rules run and the page is shown as it is. |
| Your site's key is rejected, or the site was deleted | Your page, as it is | The saved rules are deleted from the browser and the widget stops for that page view. |
| The visitor's location can't be worked out | Your page, plus any rules that don't check location | A rule with a location condition doesn't run. GeoEngage doesn't guess a country. |
| A rule's target element never appears on the page | Your page, without that change | The widget watches for the element for up to 5 seconds, then gives up on that action. |

Rules and tracking settings are each fetched with a 5-second limit. A slow answer is treated like a failed one.

## Your page is never hidden for long

Rules that change something already on the page, such as text, an image or a hidden element, would show the original for a moment before the change. To avoid that, the tag hides just those elements until their rule has run.

- **The wait is capped.** Hidden elements reappear after 1.5 seconds at most, whether or not the rule has run. The limit can never be set higher than 5 seconds.
- **Only the elements a rule changes are hidden.** The mask never covers `<body>` or the whole page, and rules that add something new, such as a popup or a banner, hide nothing.
- **It needs one earlier page view.** The tag learns what to hide from the rules that ran on the visitor's previous page view, so a first-ever page view hides nothing.

If the rest of the widget fails to load, the elements reappear when the time limit ends and your page is back to normal.

## Turning things off

Pick the smallest switch that does what you need:

- **One rule.** Switch it off in the **Rules** list. Visitors stop seeing it on their next page view, within about five minutes. There is nothing to republish.
- **The measurement group.** Switch off **Holdout group** under **Tracking Config → Holdout**. Visitors who were held out get your rules again. See [Holdouts](https://geoengage.app/docs/rules/holdouts).
- **Tracking until visitors agree.** [Consent mode](https://geoengage.app/docs/widget/consent) sends nothing and runs no rule, except the compliance banner, until the visitor accepts.
- **Your own browser.** [Leave your own visits out of your numbers](https://geoengage.app/docs/analytics#leaving-out-your-own-visits) turns the widget off in that browser only.
- **Everything on a site.** Remove the tag from your pages. Your pages work the same without it. A page served from a cache keeps the tag until the cache clears.

## Writing your own code around it

If an ad blocker stops the tag, `window.GeoEngage` doesn't exist and calling it throws. Where that would break your page, such as at checkout, write `window.GeoEngage?.trackConversion(...)`. The call then does nothing when the tag is missing. See [Calling the API](https://geoengage.app/docs/widget#calling-the-api).

## Checking it yourself

Add `data-debug="true"` to the tag and look for lines that start with `[GeoEngage]` in the browser console. Failed requests and each rule check are logged there. [Troubleshooting](https://geoengage.app/docs/troubleshooting) covers the common cases.

---

Source: https://geoengage.app/docs/reliability
