ErrLookup › dgtlmoon/changedetection.io
dgtlmoon/changedetection.io
Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, restock alerts, and website defacement monitoring—all for free or enjoy our SaaS plan! · Python · 194 source files
Analyzed at 5d9c7c6da7 on 2026-08-27. 67 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| Invalid JSON object for field: {value} | validation | error | xpath, lxml, form-validation, changedetectionio |
| Validation failed: {'; '.join(error_details)} | http | error | xpath, lxml, catch-all, unexpected-exception |
| Backup archive decompressed size ({total_uncompressed // (10 | validation | error | jsonpath, form-validation, changedetectionio |
| Zip Slip path traversal detected in backup archive: {member. | validation | error | jsonpath, jsonpath-ng, form-validation |
| One of the 'conditions' rulesets is incomplete, cannot run. | validation | error | jsonpath, jsonpath-ng, catch-all |
| BrowserStepsStepException | exception | error | jsonpath, form-validation, misleading-message |
| EmptyReply | exception | error | jq, optional-dependency, module-not-found, changedetectionio |
| Non200ErrorCodeReceived | exception | error | jq, form-validation, expression-syntax |
| ScreenshotUnavailable | exception | error | url-validation, urlparse, form-validation |
| Error while trying to connect the browser, Code {e.status_co | exception | error | websocket, puppeteer, connection, browser-service |
| Error connecting to the browser, check your browser connecti | exception | error | websocket, puppeteer, invalid-url |
| Error connecting to the browser - Exception '{str(e)}' | exception | error | websocket, puppeteer, connection, browser-service |
| EmptyReply | exception | error | puppeteer, fetcher, empty-response |
| Non200ErrorCodeReceived | exception | error | http-status, puppeteer, fetcher |
| Content Fetcher > xPath scraper failed. Please report this U | exception | error | puppeteer, xpath, scraper |
| BrowserStepsInUnsupportedFetcher | exception | error | browser-steps, fetcher, unsupported-operation |
| Redirect blocked: '{redirect_url}' resolves to a private/res | exception | critical | ssrf, redirect, requests, security |
| Too many redirects | exception | error | redirect-loop, requests, http |
| A variable or function is not defined: {e} | validation | warning | jinja2, wtforms, template-validation, changedetectionio, notifications |
| The following tokens used in the notification are not valid: | validation | warning | jinja2, undeclared-variables, wtforms, changedetectionio, notifications |
| Watch protocol is not permitted or invalid URL format | validation | error | url-validation, ssrf, wtforms, changedetectionio, protocol-allowlist |
| RegEx '%s' is not a valid regular expression. | validation | warning | regex, python-re, wtforms, validation |
| XPath not permitted in this field! | validation | warning | xpath, css-selector, wtforms, changedetectionio, input-validation |
| '%(expression)s' is not a valid XPath expression. (%(error)s | validation | warning | xpath, elementpath, wtforms, changedetectionio |
| A system-error occurred when validating your XPath expressio | validation | error | xpath, lxml, elementpath, catch-all, changedetectionio |
| Empty value not allowed. | validation | warning | wtforms, validation, form-input, multi-line |
| Invalid value. | validation | warning | wtforms, validation, regex, form-input |
| No parsable JSON found in this document | exception | error | json, html-parsing, scraping, json-ld |
| Change too large for AI summary ({len(text):,} chars, limit | exception | warning | llm, ai-summary, size-limit, input-validation |
| Invalid notification format: "{n_format}" | validation | error | notification, config, validation, valueerror |
| Invalid notification format: "{value}" | validation | error | notification, config, validation, dict-setitem |
| Bounding box value is too long | validation | warning | wtforms, validation, bounding-box, image-diff |
| Bounding box must be in format: x,y,width,height (integers o | validation | warning | wtforms, validation, regex, bounding-box |
| Bounding box values must be non-negative | validation | warning | wtforms, validation, bounding-box, defensive-check |
| Bounding box values are too large | validation | warning | wtforms, validation, bounding-box, image-diff |
| Selection mode must be either "element" or "draw" | validation | warning | wtforms, form-validation, image-ssim-diff, selection-mode |
| No screenshot available. Ensure the watch is configured to u | exception | error | screenshot, processor, playwright, image-ssim-diff |
| UUID: {watch.get('uuid')} - Screenshot comparison failed: {e | exception | error | screenshot, ssim, processor, wrapper-exception |
| Cannot run, more than one price detected, this plugin is onl | exception | error | restock, price-parsing, multi-product, processor |
| Unable to extract restock data for this page unfortunately. | exception | error | restock, availability, javascript-rendering, no-data |
| Command-line `{tool}` tool was not found in system PATH, was | exception | error | pdf, pdftohtml, poppler, missing-dependency, docker |
| {self.filter_config.include_filters} | exception | warning | include-filter, xpath, css-selector, processor |
| Disk full: Cannot save {label} | exception | critical | enospc, disk-full, datastore, io |
| Disk quota exceeded: Cannot save {label} | exception | critical | edquot, quota, datastore, io, nfs |
| I/O error saving {label}: {e} | exception | critical | io-error, permissions, datastore, errno |
| Migration failed: Could not save watch {uuid}. url-watches.j | exception | critical | migration, datastore, upgrade, legacy-format |
| Migration failed: {len(missing)} watch files missing: {missi | exception | critical | migration, verification, missing-file, datastore |
| Migration failed: Could not create changedetection.json. url | exception | critical | migration, settings, disk-full, datastore |
| "{}" is not a valid bool value | validation | warning | strtobool, query-params, value-error, api |
| Invalid day_of_week: '{day_of_week}'. Must be a valid weekda | validation | warning | schedule, weekday, time-handler, value-error |
| Invalid time_str: '{time_str}'. Must be in 'HH:MM' format. | validation | warning | schedule, time-format, time-handler, value-error |
| Invalid timezone_str: '{timezone_str}'. Must be a valid time | validation | warning | timezone, schedule, arrow, value-error |
| {reason} | validation | error | ssrf, url-validation, security, fetch |
| Processor module '{processor}' not found. | exception | error | processor, plugin, module-not-found, datastore |
| No Favicon available for {uuid} | http | warning | flask, favicon, http-404, changedetectionio |
| abort(400) # Bad Request if the filename doesn't match the | http | error | flask, backup, http-400, input-validation, path-traversal |
| abort(404) | http | error | flask, path-traversal, http-404, security, backup |
| Processor '{processor_name}' does not provide difference dat | http | error | flask, processor-plugin, http-404, changedetectionio |
| Processor '{processor_name}' does not support xlsx export | http | error | flask, export, xlsx, processor-plugin, http-404 |
| Asset '{asset_name}' not found | http | warning | flask, processor-plugin, asset, http-404 |
| Processor '{processor_name}' does not support assets | http | error | flask, processor-plugin, asset, http-404 |
| abort(500) | http | error | flask, snapshot-corruption, http-500, decompression |
| abort(404) | http | error | flask, http-404, uuid, changedetectionio |
| Asset '{asset_name}' not found | http | warning | flask, asset, processor-plugin, http-404 |
| Processor '{processor_name}' does not support assets | http | error | flask, asset, processor-plugin, http-404 |
| abort(404) | http | warning | flask, static-assets, flags, http-404, input-validation |
| abort(403) | http | error | flask, authentication, http-403, screenshot, access-control |