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>

[![Chat with 
Dosu](https://dosu.dev/dosu-chat-badge.svg)](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)&nbsp;[![Open
 in 
Cursor](https://dosu.dev/dosu-in-cursor.svg)](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.)&nbsp;[![Join 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=join-discord)&nbsp;[![Share
 on 
X](https://img.shields.io/badge/X-share-black)](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]

Reply via email to