GitHub user dosubot[bot] added a comment to the discussion: Warm up charts cache via API
<!-- Answer --> The error is because [`queries` is a required field](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/common/query_context_factory.py#L47-L88) that cannot be auto-generated from just `form_data`. You need to construct it from the form_data fields. **Correct payload structure:** ```python # Extract query fields from form_data query = { "columns": form_data.get("groupby", []) + form_data.get("columns", []), "metrics": form_data.get("metrics", []), "filters": form_data.get("adhoc_filters", []), "row_limit": form_data.get("row_limit", 10000), "time_range": form_data.get("time_range", "No filter"), "granularity": form_data.get("granularity_sqla"), "orderby": form_data.get("orderby", []), "extras": { "time_grain_sqla": form_data.get("time_grain_sqla"), } } payload = { "datasource": { "id": form_data["datasource"].split("__")[0], # or however your datasource is structured "type": "table" }, "queries": [query], # <-- THIS IS REQUIRED "force": True, "form_data": form_data # optional, for viz metadata } ``` **Key distinction:** - `queries` → defines **what data to fetch** (columns, metrics, filters) - `form_data` → defines **how to render the chart** (colors, axes, viz type) The [schema validation](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/charts/schemas.py#L1363-L1398) requires `queries` because that's what drives the actual SQL query generation. The exact fields you need to extract from form_data depend on your chart's `viz_type` — different chart types use different form_data fields (e.g., `groupby` vs `columns`, `x_axis`, etc.). <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=brand-link).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/d7e669b9-1153-4ca0-988f-74392f012ffc?feedback_type=great_response&utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/d7e669b9-1153-4ca0-988f-74392f012ffc?feedback_type=irrelevant_answer&utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/d7e669b9-1153-4ca0-988f-74392f012ffc?feedback_type=incorrect_sources&utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/d7e669b9-1153-4ca0-988f-74392f012ffc?feedback_type=too_verbose&utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/d7e669b9-1153-4c a0-988f-74392f012ffc?feedback_type=hallucination&utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/d7e669b9-1153-4ca0-988f-74392f012ffc?feedback_type=bug_report&utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-bug_report) | [Other](https://app.dosu.dev/response-feedback/d7e669b9-1153-4ca0-988f-74392f012ffc?feedback_type=other&utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-other)</sup> [](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=chat-badge) [](https://cursor.com/link/prompt?text=The%20error%20is%20because%20%5B%60queries%60%20is%20a%20required%20field%5D%28https%3A//github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/common/query_context_factory.py%23L47-L88%29%20that%20cannot%20be%20auto-generated%20from%20just%20%60form_data%60.%20You%20need%20to%20construct%20it%20from%20the%20form_data%20fields.%0A%0A%2A%2ACorrect%20payload%20structure%3A%2A%2A%0A%0A%60%60%60python%0A%23%20Extract%20query%20fields%20from%20form_data%0Aquery%20%3D%20%7B%0A%20%20%20%20%22columns%22%3A%20form_data.get%28%22groupby%22%2C%20%5B%5D%29%20%2B%20form_data.get%28%22columns%22%2C%20%5B%5D%29%2C%0A%20%20%20%20%22metrics%22%3A%20form_data.get%28%2 2metrics%22%2C%20%5B%5D%29%2C%0A%20%20%20%20%22filters%22%3A%20form_data.get%28%22adhoc_filters%22%2C%20%5B%5D%29%2C%0A%20%20%20%20%22row_limit%22%3A%20form_data.get%28%22row_limit%22%2C%2010000%29%2C%0A%20%20%20%20%22time_range%22%3A%20form_data.get%28%22time_range%22%2C%20%22No%20filter%22%29%2C%0A%20%20%20%20%22granularity%22%3A%20form_data.get%28%22granularity_sqla%22%29%2C%0A%20%20%20%20%22orderby%22%3A%20form_data.get%28%22orderby%22%2C%20%5B%5D%29%2C%0A%20%20%20%20%22extras%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22time_grain_sqla%22%3A%20form_data.get%28%22time_grain_sqla%22%29%2C%0A%20%20%20%20%7D%0A%7D%0A%0Apayload%20%3D%20%7B%0A%20%20%20%20%22datasource%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22id%22%3A%20form_data%5B%22datasource%22%5D.split%28%22__%22%29%5B0%5D%2C%20%20%23%20or%20however%20your%20datasource%20is%20structured%0A%20%20%20%20%20%20%20%20%22type%22%3A%20%22table%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22queries%22%3A%20%5Bquery%5D%2C%20%20%23%20%3C--%20THIS%20 IS%20REQUIRED%0A%20%20%20%20%22force%22%3A%20True%2C%0A%20%20%20%20%22form_data%22%3A%20form_data%20%20%23%20optional%2C%20for%20viz%20metadata%0A%7D%0A%60%60%60%0A%0A%2A%2AKey%20distinction%3A%2A%2A%0A-%20%60queries%60%20%E2%86%92%20defines%20%2A%2Awhat%20data%20to%20fetch%2A%2A%20%28columns%2C%20metrics%2C%20filters%29%0A-%20%60form_data%60%20%E2%86%92%20defines%20%2A%2Ahow%20to%20render%20the%20chart%2A%2A%20%28colors%2C%20axes%2C%20viz%20type%29%0A%0AThe%20%5Bschema%20validation%5D%28https%3A//github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/charts/schemas.py%23L1363-L1398%29%20requires%20%60queries%60%20because%20that%27s%20what%20drives%20the%20actual%20SQL%20query%20generation.%0A%0AThe%20exact%20fields%20you%20need%20to%20extract%20from%20form_data%20depend%20on%20your%20chart%27s%20%60viz_type%60%20%E2%80%94%20different%20chart%20types%20use%20different%20form_data%20fields%20%28e.g.%2C%20%60groupby%60%20vs%20%60columns%60%2C%20%60x_axis%60% 2C%20etc.%29.) [](https://go.dosu.dev/discord-bot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=join-discord) [](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/38718) GitHub link: https://github.com/apache/superset/discussions/38718#discussioncomment-16193382 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
