You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Report fails to generate if dashboard doesn't contain a chart #29629
Superset cannot create a report for a dashboard without a chart element because the Selenium code involved waits for at least one chart element to render. A timeout occurs without a chart element present (see stack trace below).
This leads to an error message in the execution log which doesn't provide any meaningful information:
We would suggest to either take a screenshot without chart elements present or to include a meaningful hint in the error message. Feel free to propose different solutions :-)
How to reproduce the bug
Create a Superset dashboard with a text layout element but no chart
Enable and configure Alerts & Reports for your Superset instance
Schedule a report for the dashboard created above
Access the execution log of the report.
Screenshots/recordings
No response
Superset version
4.0.2
Python version
3.10
Node version
18 or greater
Browser
Chrome
Additional context
Selenium timed out waiting for chart containers to draw at url http://superset.data:30080/superset/dashboard/914cb113-ac4a-4ba4-a46e-8f05e517691b/?force=false&standalone=3
Traceback (most recent call last):
File "/app/superset/utils/webdriver.py", line 378, in get_screenshot
WebDriverWait(driver, self._screenshot_locate_wait).until(
File "/usr/local/lib/python3.10/site-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Checklist
I have searched Superset docs and Slack and didn't find a solution to my problem.
I have searched the GitHub issue tracker and didn't find a similar bug report.
I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.
Hello @oscep! I'm here to help you with any bugs, questions, or contributions you have for the repository. Let's work together to solve any issues you're facing.
To address the issue of generating reports for dashboards without chart elements, you can use the force_screenshot option. This option ensures that a screenshot is taken even if the dashboard does not contain any chart elements. Here is the relevant code snippet:
This approach ensures that the alert or report will still function correctly even if the dashboard lacks chart elements by forcing a screenshot [1].
Additionally, to provide more meaningful error messages, you can customize the error handling in the report scheduling system. For example, you can modify the string passed to the custom exceptions to include more context, such as the report name:
raiseReportScheduleScreenshotFailedError(
f"Failed taking a screenshot for report {self._report_schedule.name}: {str(ex)}"
) fromex
This would make the error messages more informative and helpful for debugging [2][3].
I'm not sure if the bot is correct here or not, but this has been silent for 250+ days. Can you confirm this is still an issue in newer (4.1.2 or better yet 5.0.0) versions? If you're willing to open a PR with a better error message, that'd be appreciated. Also curious if the Playwright version works better.
Both fixes are now available in recent Superset releases. Empty dashboards containing only text or other non-chart elements can now be successfully screenshot for reports.
Thank you for the detailed bug report with reproduction steps and stack trace - this helped identify and fix the issue for both screenshot implementations.
Activity
dosubot commentedon Jul 18, 2024
Hello @oscep! I'm here to help you with any bugs, questions, or contributions you have for the repository. Let's work together to solve any issues you're facing.
To address the issue of generating reports for dashboards without chart elements, you can use the
force_screenshotoption. This option ensures that a screenshot is taken even if the dashboard does not contain any chart elements. Here is the relevant code snippet:This approach ensures that the alert or report will still function correctly even if the dashboard lacks chart elements by forcing a screenshot [1].
Additionally, to provide more meaningful error messages, you can customize the error handling in the report scheduling system. For example, you can modify the string passed to the custom exceptions to include more context, such as the report name:
This would make the error messages more informative and helpful for debugging [2][3].
To continue talking to Dosu, mention @dosu.
rusackas commentedon Apr 2, 2025
I'm not sure if the bot is correct here or not, but this has been silent for 250+ days. Can you confirm this is still an issue in newer (4.1.2 or better yet 5.0.0) versions? If you're willing to open a PR with a better error message, that'd be appreciated. Also curious if the Playwright version works better.
hxtmdev commentedon May 19, 2025
Might be resolved with #33107?
Edit: Or rather #30767 if not using Playwright...
rusackas commentedon Feb 22, 2026
This issue has been resolved by two separate fixes:
Both fixes are now available in recent Superset releases. Empty dashboards containing only text or other non-chart elements can now be successfully screenshot for reports.
Thank you for the detailed bug report with reproduction steps and stack trace - this helped identify and fix the issue for both screenshot implementations.
Closing as fixed.