Distill.io Extension Not Working in Firefox: Fix Monitor Errors
Find the exact Distill check error in Firefox, then fix the cause: local monitor setup, hidden toolbar icon, stale selection, slow content, or alerts.
If Distill is not working in Firefox, start with the monitor’s latest check log and select View Details. The error code and captured snapshot help distinguish an extension problem from a stale selection, a page that loads too slowly, a blocked request, or a monitor running on the wrong device. Fix the cause shown by the check details rather than reinstalling the add-on first. Distill’s error guide explains that the most recent check determines whether a monitor is in Error.
1. Diagnose the latest check
- Open the Distill icon in Firefox and choose Go to Watchlist.
- Find the monitor and open its check log. If you see a message that the log is available on the device running the monitor, open the Firefox extension’s local Watchlist.
- Choose View Details on the latest check.
- Read the reported error and inspect the snapshot. Compare the snapshot with the page as you see it in Firefox: is the target content present, has the page redirected, or is a login or CAPTCHA shown?
- Follow the matching fix below, then run a manual check from the device that owns the monitor and confirm that a successful check appears in the log.
The Watchlist is available from the extension and web app, but a local monitor’s checks run in its assigned browser or device. Distill’s Watchlist guide describes the extension route.
2. Check whether the monitor is local or cloud-based
This is a frequent source of confusion. A local monitor checks through the Firefox extension on your device; Firefox must be running for those checks. A cloud monitor checks on Distill’s servers and does not depend on your browser staying open. Distill shows the assigned device in the Watchlist. See Distill’s local versus cloud monitor guide.
| What you see | What it means | What to do |
|---|---|---|
| Firefox or browser device icon | The monitor is assigned to a local browser | Use Firefox’s extension Watchlist to run it; keep Firefox open for scheduled checks. |
| Cloud icon | The monitor runs on Distill’s servers | Check the cloud check log and investigate access restrictions, authentication, or page rendering. |
| “Local monitors can’t be run from the web app” | The web app is being used to run a browser-local monitor | Open the Firefox extension Watchlist and run the monitor there. |
To run a local check manually, click the Distill toolbar icon, choose Go to Watchlist, select the monitor, and use the run action. Distill’s support forum has one Firefox user report where switching from the web app to the local Watchlist resolved this specific workflow mix-up; it is an example, not a universal diagnosis. Read the support discussion.
3. Restore the Distill toolbar icon
If the add-on is installed but its button is missing, Firefox may have left it in the extensions menu or outside the visible toolbar. Open Firefox’s menu and toolbar customization, find the Distill icon, and drag it onto the toolbar. Then open it and select Go to Watchlist. Distill documents this in its Firefox add-on guide.
If the icon remains unavailable, check Firefox’s add-ons list to confirm Distill is installed and enabled. Refresh the extension or restart Firefox if the button does not respond. Avoid removing and reinstalling before noting which browser profile and account contain the monitor.
4. Fix common Distill monitor error codes
Error codes are diagnostic clues. The snapshot and the specific error details should guide the fix; no single remedy applies to every site.
| Error | Likely meaning | Practical fix |
|---|---|---|
E_BROWSER |
The extension could not open a tab or window, often because of browser behavior or settings. | In Distill device settings, open Advanced and change “Load pages that can’t be loaded in background in” to Window or Sticky Window. Refresh the extension or browser, then restart Firefox if needed. |
SELECTION_EMPTY |
The selected content was not found in the captured page. | Inspect the snapshot. If the page changed, select the new target. If it appears late, add a delay and check again. |
E_CONFIG |
The monitor configuration is invalid, the URL is empty or malformed, or the selector type is invalid. | Verify the full URL and review the monitor’s settings, including selector type and selector value. |
E_FILTER_HTML |
Distill could not extract the selected content from the page. | Check whether the page structure changed. Reselect the content with the visual selector or add a delay for dynamic content. |
E_FRAME_REQUEST |
The selected frame was not found. | Check whether the page redirects, update the monitor URL if necessary, add a delay, and retry. |
E_TIMEOUT |
The page took too long, needs an active tab, or is inaccessible from the chosen execution location. | Inspect the snapshot and test whether the page loads in an active Firefox tab. Consider local execution for pages blocked from cloud access, or cloud execution if the local browser is unavailable and the site allows it. |
E_REQUEST_FORBIDDEN |
The site denied the request, possibly because it requires authentication or blocks the chosen environment. | Check whether login or cookies are required and whether they exist in the execution environment. Depending on the cause, use a local browser session, an appropriate proxy, or a dedicated cloud device. |
For the full and changing list of errors, use Distill’s troubleshooting reference.
5. Repair an empty or incorrect page selection
A monitor that worked before can fail after a site redesign, a change to its page markup, a redirect, or a change in when content appears. Use the error snapshot as the source of truth:
- Open the snapshot from View Details.
- Check whether the target text or element exists in that captured page.
- If it is gone or moved, edit the monitor and select the current page area again.
- If it is missing only because the page is still loading, configure a delay appropriate to that page and retry.
- Prefer a stable, specific content area over a broad page selection when unrelated page changes create noise.
Distill’s documentation identifies changed page structure and late-loading content as causes to check for empty selections and extraction errors. See the error-specific guidance.
6. Investigate blocked pages, login, CAPTCHA, and timeouts
First compare the check snapshot with a normal Firefox visit. A sign-in screen, CAPTCHA, access-denied message, or redirect means the monitor may not be receiving the same content you expect. Check the monitor’s assigned device and whether that environment has the needed authentication.
- Local check succeeds, cloud check fails: The site may block requests from Distill’s cloud environment. Distill identifies local checks and proxies as possible approaches, depending on the site and error.
- Cloud check succeeds, local check fails: Confirm Firefox is open, the extension is enabled, local monitoring is active, and the monitor is assigned to this Firefox device.
- CAPTCHA appears: The site is requiring verification. Distill’s error guidance mentions a proxy or dedicated cloud device as possible options; use the details and your site’s access requirements to choose.
- Page requires a logged-in session: Run where the required session is available, and verify that the session remains valid. Do not assume a cloud check shares Firefox’s cookies.
- Timeout is intermittent: Check whether the site itself is slow or temporarily unavailable, then retry and compare snapshots before changing the monitor configuration.
Execution location is a tradeoff: local checks require the browser/device to be available and may have the relevant session; cloud checks run independently of your computer but can encounter site access restrictions. Distill’s device guide describes these differences.
7. If checks work but Firefox alerts do not
A missing alert is not necessarily a capture failure. Trace the chain in order:
- Confirm the check log shows successful checks and that a change appears in Change History.
- Check whether configured conditions are satisfied. A detected difference may not trigger an alert if its condition is unmet.
- Confirm the expected alert action is configured for that monitor.
- Check that local monitoring is enabled and that the assigned browser/device is available.
- Review whether the account has available quota for the selected alert or monitoring setup.
An errored check cannot detect a new change. For more detail, see Distill’s missing-alert guide.
8. Improve reliability and reduce noisy checks
- Keep Firefox available for local monitors and verify the monitor’s assigned device after changing browsers or computers.
- Use delays only when the target content demonstrably loads after the check starts. A delay can help dynamic pages, but adds waiting time to every check.
- Monitor a stable page region where possible, and revisit the selection after site redesigns.
- When a site blocks one execution environment, compare local and cloud behavior using the same URL and inspect each check’s snapshot.
- Check the monitor log after changing settings so you can tell whether the error changed.
Distill publishes product-specific check intervals that vary by plan and mode; treat those as plan settings, not a guarantee of when a particular page will finish loading. Check its current local/cloud documentation for current details.
9. Or skip the browser setup
If the job is to capture a webpage snapshot while diagnosing a page, ScreenshotNeo is a website screenshot API and MCP server for developers. It can give you a one-off image or PDF without configuring browser automation. It does not monitor a page for changes or replace Distill alerts.
One GET request returns a screenshot. See the ScreenshotNeo API documentation for options and setup.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);
ScreenshotNeo accepts cookie and consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before the capture; each cleanup step can be turned off. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf tools for AI agents. The free plan includes 1,000 screenshots each month with no card; paid plans start at $5 for 3,000 screenshots. Create a free ScreenshotNeo account for 1,000 screenshots a month, no card required.
Frequently asked questions
Will reinstalling the Firefox add-on fix a monitor in Error?
Only if the extension itself is missing, disabled, or malfunctioning. First check the monitor’s latest error and snapshot; many monitor errors concern the page, selection, execution device, or access.
Does Firefox need to stay open for Distill checks?
For a monitor assigned to the Firefox browser extension, yes. A cloud monitor runs on Distill’s servers instead. See Distill’s explanation.
Why does a page look correct in Firefox but produce an empty selection?
The check may capture a different state, the target may have moved, or it may load after the check snapshot. Inspect the snapshot and update the selection or timing based on what it shows.
Can ScreenshotNeo replace Distill for change alerts?
No. ScreenshotNeo captures screenshots or PDFs on request; it is not a page-change monitoring and alerting service.


