dosubot[bot] commented on issue #32037: URL: https://github.com/apache/superset/issues/32037#issuecomment-3112497493
<!-- Answer --> A 404 when retrieving a dashboard screenshot with a cache key usually means the screenshot isn't available in the cache yet. This can happen if the async screenshot task hasn't finished, if the cache is misconfigured, or if there was an error during screenshot generation. Here’s what you can check: 1. Wait a few seconds after POSTing to /cache_dashboard_screenshot/ before trying the GET, since screenshot generation is async and handled by Celery. 2. Check your Superset and Celery logs for errors or warnings related to screenshot generation or caching—look for issues with WebDriver, cache backend, or task failures. 3. Make sure both the THUMBNAILS and ENABLE_DASHBOARD_SCREENSHOT_ENDPOINTS feature flags are enabled, and that your THUMBNAIL_CACHE_CONFIG is set to a real cache backend (like Redis or Memcached), not NullCache. 4. Confirm your cache timeout and error TTL settings are reasonable, so screenshots don’t expire before you fetch them. 5. Double-check that your cache key parameters (dashboard state, window size, thumb size, permalink key) match between POST and GET requests—any mismatch can cause a cache miss and a 404. If the cache is not set or misconfigured, screenshot generation will be skipped and retrieval will always fail with a 404. If there’s a WebDriver or screenshot error, the cache payload will be in ERROR status and not retrievable until the error TTL expires. All of this is by design in the Superset screenshot API logic ([source](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/dashboards/api.py), [source](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/utils/screenshots.py), [source](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/config.py)). <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/69353614-ab88-407c-867e-4204a06d99fc?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/69353614-ab88-407c-867e-4204a06d99fc?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/69353614-ab88-407c-867e-4204a06d99fc?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/69353614-ab88-407c-867e-4204a06d99fc?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/69353614-ab88-407c-867e-4204a06d99fc?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/69353614-ab88-407c-867e-4204a06d99fc?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/69353614-ab88-407c-867e-4204a06d99fc?feedback_type=other)</sup> [](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=githu b) [](https://go.dosu.dev/discord-bot) [](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/issues/32037) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For additional commands, e-mail: notifications-h...@superset.apache.org