Troubleshooting Guide
This guide covers common issues you may encounter while browsing with Nvirya AdGuard v11.7.0 and provides safe, step-by-step recovery instructions using the controls available in the interface.
A. A Dark Overlay Remains After an Advertisement Is Removed#
1. Symptoms#
- An advertisement or pop-up box disappears, but the rest of the page remains dimmed behind a semi-transparent black or gray screen.
- You cannot scroll up or down, or tapping links on the page does nothing.
2. Possible causes#
Many websites render modal advertisements using two separate parts:
- The foreground ad container (
<div>or<iframe>), and - A separate full-screen backdrop element (often styled with
position: fixed, a highz-index, orbackdrop-filter: blur(...)) paired withoverflow: hiddenorposition: fixedon the<html>or<body>tag.
Although Nvirya AdGuard automatically searches for paired backdrops (adjacentBackdropNodes) and schedules scroll recovery (scheduleUnlockPageScroll at 0 ms, 120 ms, 420 ms, and 900 ms), a website may insert its backdrop asynchronously or use custom wrapper markup that is not automatically removed alongside the ad.
3. Recommended steps#
- Open the Nvirya AdGuard control panel by tapping the floating Quick Action Button or pressing
Alt+A. - In the Overview tab under Quick Actions, tap Unlock Page Scroll ("Restore scrolling locked by hidden overlays"). This forces
overflow: auto !importantand resetsposition: fixedon<html>and<body>. - Tap Clean Leftover Frames ("Collapse empty ad placeholders immediately"), which hides leftover Google ad frames and runs a fresh anti-adblock overlay scan (
handleAntiAdblock). - If a visible dark backdrop element is still blocking taps, select Hide Page Element in Quick Actions, tap the dark overlay, and tap Hide Element.
Warning: When using Hide Page Element, check the highlighted border and the Level slider (
Level 1/...) before confirming. Do not hide top-level page wrappers (such as<main>,<article>, or#app) if the blue highlight covers the entire page content—if you accidentally hide page content, immediately pressCtrl+Z(or tap Undo (Ctrl+Z) in Quick Actions) to restore it.
4. If the problem persists#
- Open the control panel (
Alt+A) and tap Preview Original Page (3s) to verify whether a cosmetic rule hid a modal that required user interaction (such as a regional notice or age gate). - Tap Pause for This Session in Quick Actions and reload the page to complete the interaction, then tap Resume Session Protection.
5. When reporting the issue#
Open About → Community & Support → Feedback (or use the feedback modal), select Broken page layout, and briefly note whether Unlock Page Scroll or Clean Leftover Frames resolved the stuck backdrop.
B. Cloudflare or CAPTCHA Verification Does Not Complete#
1. Symptoms#
- A security challenge page (such as Cloudflare "Just a moment...", Cloudflare Turnstile, hCaptcha, reCAPTCHA, or DDoS-Guard) spins continuously, reloads in a loop, or fails to display the verification checkbox.
2. Possible causes#
Security and bot-verification systems rely on strict browser integrity checks, challenge scripts, cookies, same-origin meta refreshes, and closed Shadow DOM widgets.
Nvirya AdGuard v11.7.0 includes multi-signal scoped exemptions (evaluateSecurityChallengeState, isSecurityChallengeRequest, and isProtectedSecurityElement) that automatically bypass DOM mutation scanning, script blocking, meta-refresh removal, and network interception for:
- Cloudflare challenges (
challenges.cloudflare.com,/cdn-cgi/challenge-platform/,__cf_chl_*,.cf-turnstile) - hCaptcha (
hcaptcha.com,.h-captcha,[data-hcaptcha-widget-id]) - Google reCAPTCHA (
google.com/recaptcha,recaptcha.net,.g-recaptcha) - DDoS-Guard (
ddos-guard,#ddg-captcha)
However, verification can still fail if a site embeds a custom challenge wrapper, if JavaScript prototype modifications (such as wrapped window.fetch or Function) trigger a strict integrity check, or if an external VPN/proxy/DNS filter blocks challenge assets.
Important: Nvirya AdGuard is an ad and navigation filter, not a CAPTCHA or DDoS-protection bypass tool. It cannot solve or skip security challenges on your behalf.
3. Recommended steps#
Follow these steps in order:
- Reload the page once. Transient challenge token expirations often clear on a single refresh.
- Verify that Nvirya AdGuard is up to date. Open the About tab and check Storage & Updates → Check for Updates to confirm you are running
v11.7.0or newer. - Temporarily pause the script for the current session or allowlist the site. Open the Overview tab and tap Pause for This Session (or Allow This Site).
- Retry verification. Reload the page and complete the Cloudflare or CAPTCHA challenge. Once you pass the challenge and the session cookie is set, you can re-enable protection if you used session pause.
- Report the problem if it persists when Nvirya AdGuard is active (and works immediately when paused).
4. If the problem persists#
If verification still fails even after pausing Nvirya AdGuard and reloading the page, the issue is outside the userscript. Common external causes include browser privacy/fingerprinting resistance settings, blocked third-party cookies, an unstable VPN/proxy exit IP, or a custom DNS rule blocking the challenge provider. Do not disable your browser's core security features globally; instead, test whether switching your VPN server or loading the page in a standard browser tab allows the challenge to complete.
5. When reporting the issue#
Select Broken page layout or Other in Send Feedback, mention which verification provider appeared (Cloudflare, Turnstile, hCaptcha, reCAPTCHA, or DDoS-Guard), and note whether pausing Nvirya AdGuard allowed the check to pass.
C. A Legitimate Download Link Does Not Open#
1. Symptoms#
- You click a download button or external mirror link and nothing happens, or a modal titled External Link Confirmation appears asking if you want to continue.
- Clicking Continue shows a toast message (
Pop-up was blocked by browser — navigating directly) and opens the file in the current tab instead of a new tab.
2. Possible causes#
Download portals and file-sharing sites frequently attach ad-network scripts to download buttons or route legitimate download links through cross-domain redirect wrappers. In v11.7.0, installRedirectGuard() and classifyUserAnchorNavigation() handle clicks as follows:
- Trusted file hosts are allowed directly: Links to recognized repositories and cloud hosts (
github.com,gitlab.com,sourceforge.net,mega.nz,mediafire.com,drive.google.com,dropbox.com,onedrive.live.com,box.com,fshare.vn,pixeldrain.com,gofile.io,apkmirror.com,archive.org, etc.) open without interruption unless they match an explicit ad domain. - Redirect wrapper unwrapping (
extractUnwrappedRedirectUrl): If a link uses a redirect query parameter (?url=,?to=,?target=,?dest=,?redirect=, including Base64-encodedhttp/httpstargets), the script extracts the clean destination URL. - External Link Confirmation modal (
openRedirectConfirmModal): When you click an untrusted cross-site link that opens a new tab (target="_blank"), passes through a redirect/tracking hop, or points to an unfamiliar external download host, Nvirya AdGuard pauses navigation and displays the External Link Confirmation dialog:- Message: "This site wants to open an external link:"
- Destination Badge: Displays the target hostname (e.g.,
files.example.org). - Prompt: "Do you want to continue?"
- Buttons: Cancel and Continue.
3. Recommended steps#
- Check the hostname in the External Link Confirmation modal:
- If the displayed hostname matches the file host or external website you intended to visit, tap Continue. The script adds that hostname to a temporary allowlist for the current tab session (
state.tempAllowPopupHosts), clearswindow.opener(win.opener = null) to prevent reverse tabnabbing, and opens the link (falling back to direct navigation in the current tab if your browser's native pop-up blocker blockswindow.open). - If the displayed hostname looks unrelated or suspicious, tap Cancel to stay on the current page.
- If the displayed hostname matches the file host or external website you intended to visit, tap Continue. The script adds that hostname to a temporary allowlist for the current tab session (
- If no confirmation dialog appears and the button does nothing:
- Some sites require an initial ad script click handler before revealing the real download button. Wait 1–2 seconds and tap the button a second time (
triggerAdInterceptedActionautomatically retries standard download/continue buttons after60 mswhen an ad popup is blocked, but custom script buttons may require a second tap). - Tap Preview Original Page (3s) in Overview → Quick Actions to see if a secondary download link or countdown timer was hidden by a cosmetic rule.
- Some sites require an initial ad script click handler before revealing the real download button. Wait 1–2 seconds and tap the button a second time (
Safety Warning: Do not blindly allowlist untrusted file-sharing sites or open unfamiliar external domains without checking the hostname shown in the External Link Confirmation dialog.
4. If the problem persists#
Temporarily tap Pause for This Session in Overview → Quick Actions, reload the page, and inspect where the download button leads before proceeding.
5. When reporting the issue#
Use Send Feedback with the category Broken page layout or Other, and describe which download button on the page failed to respond.
D. Google Translate or Bing Translator Is Slow or Broken#
1. Symptoms#
- Text entered into Google Translate or Bing Translator does not translate, audio pronunciation buttons fail, or a page translated through
*.translate.googdoes not load its scripts properly.
2. Possible causes#
Translation web apps make frequent background fetch and XMLHttpRequest calls and dynamically update DOM attributes (jscontroller, jsaction, jsname) as you type.
Nvirya AdGuard v11.7.0 includes dedicated compatibility exemptions (isTranslatorHostOrUrl, isTranslatorWhitelistedRequest, and isProtectedTranslatorElement) for:
- Google Translate:
translate.google.<tld>(including regional domains such as.com,.co.uk,.com.vn,.co.in),*.translate.googproxy domains,translate.googleapis.com,translate-pa.googleapis.com, and Google Translate widget frames (.goog-te-banner-frame,.goog-te-gadget,.skiptranslate). - Bing & Microsoft Translator:
bing.com/translator(includingwww.bing.comandcn.bing.com), RPC endpoints (/ttranslatev3,/tfetspktok,/tlookupv3,/tspeakv3,/tspellcheckv3),api.cognitive.microsofttranslator.com,edge.microsoft.com/translate/, and#tta_input_ta/#tta_output_tacontainers.
If translation is still slow or broken, the cause typically falls into one of three categories:
- Outdated script version or custom site rule: An older version of the script or a manually created rule in Site Filter Rules / Connection Log is blocking a required element or domain.
- Browser built-in translation feature: Mobile Safari or Chrome's built-in page translation (which runs inside the browser itself rather than on
translate.google.com) is encountering rate limits or DOM conflicts. - External DNS or VPN blocking: A network-level blocker is blocking
translate.googleapis.com,play.google.com/log,gstatic.com, orbat.bing.com.
3. Recommended steps#
- Reload the page once.
- Open About → Storage & Updates and tap Check for Updates to ensure you are on
v11.7.0or newer. - Open Overview → Site Filter Rules and Connection Log to verify that you have not manually hidden page elements or blocked Google/Microsoft API domains on that site.
- If you are translating a third-party website via a proxy URL or inline widget and it still fails, tap Pause for This Session (or Allow This Site if it is a trusted translation domain you use regularly).
Note: While official translation interfaces (
translate.google.comandbing.com/translator) have built-in protections, third-party websites viewed through a translation proxy can still contain malicious redirects or ads. Prefer Pause for This Session when testing an unfamiliar translated page rather than permanently disabling protection everywhere.
4. If the problem persists#
Test whether the translation service works when Nvirya AdGuard is paused for the session. If it still fails while paused, check your VPN, DNS filter, or browser's built-in translation settings.
5. When reporting the issue#
Submit a report via Send Feedback under Broken page layout, noting whether you were using translate.google.*, bing.com/translator, a *.translate.goog link, or a browser's built-in translation bar.
E. A Page Becomes Slow or Unresponsive#
1. Symptoms#
- Scrolling stutters, typing into a search box lags, or the browser tab freezes for several seconds when loading a specific website.
2. Possible causes#
- The website continuously mutates thousands of DOM nodes per second, triggering repeated observer batches.
- Deep Network Filter (
strictMode) is enabled in Settings, causing single-signal cosmetic checks (signals >= 1) to evaluate and hide additional elements. - An anti-adblock script on the page is stuck in a rapid retry loop trying to re-insert a blocked ad or overlay.
3. Recommended steps#
To determine whether Nvirya AdGuard is responsible for the slowdown on that site:
- Open the control panel (
Alt+A) and tap Pause for This Session under Overview → Quick Actions. - Reload the page so the site loads cleanly without userscript hooks or DOM observers.
- Compare the page behavior with the script paused versus active:
- If the page is still slow when paused, the slowdown is caused by the website itself, your device/browser, or another extension.
- If the page becomes smooth immediately when paused, Nvirya AdGuard is interacting poorly with that specific page's scripts or DOM structure.
- If Deep Network Filter is turned on in Settings, try turning it off and reloading with protection resumed to see if standard filtering performs normally.
4. If the problem persists#
Tap Allow This Site in Overview → Quick Actions to keep protection paused on that domain while waiting for a script fix.
5. When reporting the issue#
Re-enable protection briefly on the affected page (or copy diagnostics before allowlisting), open About → Community & Support → Feedback, select Other (or Broken page layout), and describe what action triggers the slowdown (for example, "Page freezes when scrolling past the comments section"). You do not need to open a browser developer console or run a performance profiler.
F. An Advertisement Is Still Visible#
1. Symptoms#
- A banner ad, sponsored feed item, floating box, or video ad remains visible on the page while Nvirya AdGuard is active.
2. Possible causes#
- First-party or obfuscated delivery: The website serves advertisements from its own domain name using randomized CSS classes (such as Tailwind/CSS-in-JS hashes) that do not match built-in selectors.
- New ad-network domain: The ad is served from a newly registered domain not yet included in
RE_AD_HOSTorRE_SUSPECT_TLD. - Intentional safety thresholds: To avoid deleting legitimate articles, images, or video players,
inspectNode()requires at least two independent ad signals (signals >= 2) before removing generic containers when Deep Network Filter is off, and skips elements inside news article contexts (isNewsThumbnailContext) or containing substantial text (>= 50characters).
3. Recommended steps#
- For static banners or floating boxes: Open Overview → Quick Actions and tap Hide Page Element. Tap the advertisement, adjust the Level slider (
Expand/Narrow) until the blue highlight frames the entire ad container without selecting page content, and tap Hide Element (or Hide All if multiple identical slots exist). - For third-party ad domains: Open Overview → Quick Actions → Connection Log, look for the unfamiliar third-party domain serving the ad, and tap Block.
- For leftover Google ad frames: Tap Clean Leftover Frames in Quick Actions.
4. If the problem persists#
Some advertisements—especially server-side stitched video ads or first-party sponsored cards that share the exact same HTML structure as normal posts—cannot be hidden with a simple CSS selector without hiding legitimate content on the same page.
5. When reporting the issue#
Open About → Community & Support → Feedback, select Missed ad, and include a short note describing where the ad appears on the page (for example, "Sticky banner at the bottom of article pages" or "Pop-up opens when tapping the video player"). The report automatically includes the hostname and sanitized page URL.