dgtlmoon/changedetection.io · error
Processor '{processor_name}' does not support assets
Error message
Processor '{processor_name}' does not support assets What it means
Preview counterpart of the 'processor does not support assets' 404: the processor module behind /preview/<uuid>/asset/... has no get_asset() hook, so the endpoint logs a warning and aborts 404 stating the processor does not support assets.
Source
Thrown at changedetectionio/blueprint/ui/preview.py:186
datastore=datastore,
request=request
)
if result is None:
from flask import abort
abort(404, description=f"Asset '{asset_name}' not found")
binary_data, content_type, cache_control = result
response = make_response(binary_data)
response.headers['Content-Type'] = content_type
if cache_control:
response.headers['Cache-Control'] = cache_control
return response
else:
logger.warning(f"Processor {processor_name} does not implement get_asset()")
from flask import abort
abort(404, description=f"Processor '{processor_name}' does not support assets")
return preview_blueprint
View on GitHub (pinned to 5d9c7c6da7)
Solutions
- Enable visual/screenshot fetching for the watch, or switch to a processor that serves assets
- For custom processors implement get_asset() returning (bytes, content_type, cache_control) or None
- Guard client code to hide asset elements on 404
Example fix
# before # always-failing asset fetch for text processor # after resp = requests.get(preview_asset_url) show_image = resp.status_code == 200
Defensive patterns
Strategy: type-guard
Validate before calling
from changedetectionio.processors import get_processor_submodule
def preview_supports_assets(name):
m = get_processor_submodule(name, None)
return m is not None and callable(getattr(m, 'get_asset', None)) Type guard
def can_serve_assets(processor_module) -> bool:
return callable(getattr(processor_module, 'get_asset', None)) Try / catch
if not hasattr(processor_module, 'get_asset'):
abort(404, description=f"Processor '{processor_name}' does not support assets") Prevention
- Check the hook before linking preview assets
- Implement get_asset in custom processors needing binary previews
- Hide asset UI for processors lacking support
When it happens
Trigger: GET /preview/<uuid>/asset/<name> where the watch's processor (e.g. the plain text watchdog processor) doesn't implement get_asset().
Common situations: Screenshot/asset URLs used with text-only watches; visual/screenshot mode not enabled; custom processors without the get_asset hook.
Related errors
- Asset '{asset_name}' not found
- Processor '{processor_name}' does not support assets
- Asset '{asset_name}' not found
- Processor '{processor_name}' does not provide difference dat
- Processor '{processor_name}' does not support xlsx export
AI-assisted analysis of dgtlmoon/changedetection.io@5d9c7c6da7 (2026-08-27).
Data as JSON: /api/errors/4e132457383b5c7f.
Report an issue: GitHub.