Skip to content

GA4 query returns data via API but table visualization is empty after upgrade to 25.8.0 #7587

@netgineer

Description

@netgineer

Description

After upgrading Redash from 10.x to 25.8.0 (Docker image redash/redash:25.8.0), Google Analytics 4 (GA4) queries successfully execute and return data via the API and JSON download, but the built-in table visualization in the UI shows an empty table (no rows).

This used to work before the upgrade.

Environment

Redash version: 25.8.0 (Docker image redash/redash:25.8.0)
Browser: Firefox 144, macOS 10.15 (same behavior in normal and private mode)

Data source: google_analytics4 (GA4)

Steps to Reproduce

Configure a GA4 data source (Google Analytics 4).

Create a simple GA4 query, for example:

{
  "dateRanges": [
    { "startDate": "2025-09-01", "endDate": "2025-11-30" }
  ],
  "dimensions": [
    { "name": "country" }
  ],
  "metrics": [
    { "name": "activeUsers" }
  ]
}

Execute the query in the Redash UI.

Observe:

The query job completes successfully.

The “JSON” tab and the “Download JSON” endpoint both contain non-empty columns and rows.

Switch to the default Table visualization for this query.

Expected Behavior

The table visualization should display the same rows returned by GA4 (e.g. country + activeUsers per row).

Actual Behavior

The query result is not empty:

GET /api/query_results/<result_id> returns a non-empty data payload.

Downloaded JSON contains columns and rows with many records (e.g. "Russia", "Ukraine", etc.).

But the table visualization UI shows an empty table (no rows).

Example API response (trimmed):


{
  "query_result": {
    "id": 349687,
    "query_hash": "32c2afb6c419ed9204453e4c051eec19",
    "query": "{ ... GA4 JSON ... }",
    "data": "{\"columns\": [{\"name\": \"country\", ...}, {\"name\": \"activeUsers\", ...}], \"rows\": [{\"country\": \"XXXX\", \"activeUsers\": \"24735067\"}, ...]}",
    "data_source_id": 24,
    "runtime": 2.22,
    "retrieved_at": "2025-12-01T12:42:44.916Z"
  }
}

Note: data is a JSON string that itself contains { "columns": [...], "rows": [...] }. Despite this, the API and downloaded JSON clearly contain rows; only the table rendering in the UI is empty.

Additional Information / Logs

The query shows as successful in the job log.

No obvious JavaScript errors related to this query in the browser console; mainly unrelated source map warnings like:

Source map error: Error: Content-Length header of network response exceeds response Body.
Resource URL: https://redash.example.com/static/vendors~app.c030fc04c8e7b518de10.js
Source Map URL: vendors~app.c030fc04c8e7b518de10.js.map

The issue did not exist on Redash 10.x: the same GA4 queries used to render correctly in table visualizations before upgrading to 25.8.0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions