msyavuz opened a new pull request, #40530: URL: https://github.com/apache/superset/pull/40530
### SUMMARY When `ALERT_REPORT_TABS` is enabled and a report's `extra.dashboard` is a non-null but empty dict (written by the modal while both `ALERT_REPORT_TABS` and `ALERT_REPORTS_FILTER` are on), `get_dashboard_urls()` entered the TABS branch and created a permalink with only `native_filters=()` encoded — nothing meaningful. Playwright then navigated through the resulting server-side redirect, which caused `domcontentloaded` timeouts and screenshot failures for any report that had no tab or filter configured. Fix: guard the `_get_tab_url` fallback so it only fires when there are actual native filter params to encode. An empty `dashboard_state` (no anchor, no filters) falls through to the plain dashboard URL, same as when the FFs are off. Reports with a tab or filter configured are unaffected — those paths already return early before reaching this guard. ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF N/A — backend-only fix. ### TESTING INSTRUCTIONS 1. Enable `ALERT_REPORT_TABS=True` and `ALERT_REPORTS_FILTER=True`. 2. Create a report on a dashboard with **no tab and no filter** selected. 3. Send the report — it should succeed and produce a screenshot. 4. Confirm `CreateDashboardPermalinkCommand` is not called (no permalink created). 5. Run `pytest tests/unit_tests/commands/report/execute_test.py -k "dashboard_urls"`. ### ADDITIONAL INFORMATION - [ ] Has associated issue: - [x] Required feature flags: `ALERT_REPORT_TABS`, `ALERT_REPORTS_FILTER` - [ ] Changes UI - [ ] Includes DB Migration - [ ] Introduces new feature or API - [ ] Removes existing feature or API -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
