Community Connector — request.dimensionsFilters is undefined only on breakdown/drill-down charts (same filter works on simple charts)

I’m building a custom Community Connector (Apps Script). In the same report, with the same IN_LIST filter on page_name, Looker Studio passes the filter to getData() for a simple chart but omits it entirely for a chart that has a breakdown dimension. Here are the two actual request objects (same report, same filter, same metric m_visits, same 7-day range — I only redacted the site id, connector config params, and the real page values).

Chart A — simple time series (date + metric, page_name as filter-only) → filter IS received:

json

{

"fields": [

{ "name": "date" },

{ "name": "m_visits" },

{ "name": "page_name", "forFilterOnly": true }

],

"dateRange": { "startDate": "2026-09-24", "endDate": "2026-09-30" },

"dimensionsFilters": [

[ { "type": "INCLUDE", "operator": "IN_LIST", "fieldName": "page_name",

"values": ["pageX", "pageY"] } ]

]

}

→ request.dimensionsFilters is present. I push the filter down to my backend API, which returns the pre-filtered result (7 rows, correct totals).

Chart B — SAME filter, SAME metric, PLUS a breakdown dimension (device_type) → filter is MISSING:

json

{

"fields": [

{ "name": "date" },

{ "name": "device_type" },

{ "name": "m_visits" },

{ "name": "page_name" }

],

"dateRange": { "startDate": "2026-09-24", "endDate": "2026-09-30" }

}

→ There is no dimensionsFilters key at all (request.dimensionsFilters === undefined), and the forFilterOnly flag that was on page_name in Chart A is gone. The connector receives no filter on this call, even though the chart has the exact same filter applied as Chart A.

What this causes Because the filter never reaches getData() on the breakdown chart, the filtering ends up being done by Looker Studio client-side, AFTER my API call, instead of being pushed down to the backend. So my connector queries the API unfiltered and Looker filters the response afterwards.

With a small dataset (this 7-day test) the numbers still come out usable. But the design is unsafe: my backend returns at most 10,000 rows per call and then truncates. On a larger date range, the unfiltered breakdown call fetches far more rows than the filtered one would, hits the 10,000-row cap, gets truncated, and Looker then applies the filter to already-incomplete data → wrong totals on the breakdown chart — while the simple charts (Chart A), which receive the filter and fetch pre-filtered data, stay correct.

Verified / ruled out

  • request.configParams IS passed on every call (I log it) — only dimensionsFilters disappears on the breakdown call.
  • Not a cache issue, not an operator-mapping issue, not specific to one dimension. The only variable is “the chart has a breakdown dimension vs not.”

Questions

  1. Is this expected? Why is dimensionsFilters omitted (and the filter applied client-side, post-fetch) specifically on the breakdown/combination getData call?
  2. Is there a supported way to receive the active filters on every getData call — including breakdown calls — so the connector can push the filter down to the API instead of Looker filtering after a potentially truncated fetch?
  3. Does filtersApplied / forFilterOnly behave differently for breakdown charts — is this documented anywhere?

thank u