{"record":{"id":"6f9f374bf2d2503b","repo":"cube-js/cube","slug":"data-blending-drilldown-query-is-not-currently-sup","errorCode":null,"errorMessage":"Data blending drillDown query is not currently supported","messagePattern":"Data blending drillDown query is not currently supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/cubejs-client-core/src/ResultSet.ts","lineNumber":205,"sourceCode":"   *      ...drillDownQuery,\n   *      limit: 30,\n   *      order: {\n   *        'Orders.ts': 'desc'\n   *      }\n   *    },\n   *    {\n   *      skip: !drillDownQuery\n   *    }\n   *  );\n   * ```\n   * @returns Drill down query\n   */\n  public drillDown(drillDownLocator: DrillDownLocator, pivotConfig?: PivotConfig): Query | null {\n    if (this.queryType === QUERY_TYPE.COMPARE_DATE_RANGE_QUERY) {\n      throw new Error('compareDateRange drillDown query is not currently supported');\n    }\n    if (this.queryType === QUERY_TYPE.BLENDING_QUERY) {\n      throw new Error('Data blending drillDown query is not currently supported');\n    }\n\n    const { query } = this.loadResponses[0];\n    const xValues = drillDownLocator?.xValues ?? [];\n    const yValues = drillDownLocator?.yValues ?? [];\n    const normalizedPivotConfig = this.normalizePivotConfig(pivotConfig);\n\n    const values: string[][] = [];\n    normalizedPivotConfig?.x.forEach((member, currentIndex) => values.push([member, xValues[currentIndex]]));\n    normalizedPivotConfig?.y.forEach((member, currentIndex) => values.push([member, yValues[currentIndex]]));\n\n    const { filters: parentFilters = [], segments = [] } = this.query();\n    const { measures, timeDimensions: timeDimensionsAnnotation } = this.loadResponses[0].annotation;\n    let [, measureName] = values.find(([member]) => member === 'measures') || [];\n\n    if (measureName === undefined) {\n      [measureName] = Object.keys(measures);\n    }","sourceCodeStart":187,"sourceCodeEnd":223,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/packages/cubejs-client-core/src/ResultSet.ts#L187-L223","documentation":"ResultSet.drillDown() supports regular queries only; for data-blending queries (multiple queries joined on shared dimensions, queryType 'blending') there is no single source query to drill into, so the method throws this error. Like the compareDateRange case, it is an explicit unsupported-feature guard.","triggerScenarios":"Calling resultSet.drillDown(locator, pivotConfig) on a ResultSet produced from a blended query — created by passing an array of queries to load()/useCubeQuery (e.g. cubeApi.load([queryA, queryB])) — where the server responds with queryType 'blending'.","commonSituations":"A chart built from blended queries (measures from different cubes on a shared axis) with a generic drill-down click handler; an app that added data blending to an existing chart but kept the drillDown wiring; frameworks that always call drillDown on cell click.","solutions":["Skip drill-down for blended-result charts (guard on resultSet.queryType === 'blending' before calling drillDown).","Execute the blended queries as separate regular queries and enable drillDown on each individual ResultSet.","Build the drill-down query manually for the specific blended member: pick the source query for that measure and add filters for the clicked x/y values.","Check Cube client releases for blending drillDown support before adding it back."],"exampleFix":"// before\nonClick={({ xValues, yValues }) => {\n  const q = resultSet.drillDown({ xValues, yValues }); // throws for blended query\n}}\n\n// after\nonClick={({ xValues, yValues }) => {\n  if (resultSet.queryType === 'blending') return; // drill-down unsupported\n  const q = resultSet.drillDown({ xValues, yValues });\n}}","handlingStrategy":"validation","validationCode":"function canDrillDown(resultSet) {\n  const unsupported = ['compareDateRange', 'blending'];\n  return resultSet && !unsupported.includes(resultSet.queryType);\n}\n\n// usage\nonClick={({ xValues, yValues }) => {\n  if (canDrillDown(resultSet)) { const q = resultSet.drillDown({ xValues, yValues }); }\n}}","typeGuard":"function isDrillable(rs: ResultSet): boolean {\n  return rs.queryType !== 'compareDateRange' && rs.queryType !== 'blending';\n}","tryCatchPattern":"let drillQuery = null;\ntry {\n  drillQuery = resultSet.drillDown({ xValues, yValues }, pivotConfig);\n} catch (e) {\n  if (/drillDown query is not currently supported/.test(e.message)) {\n    drillQuery = null; // drill-down unsupported for blended queries\n  } else { throw e; }\n}","preventionTips":["Guard drill-down click handlers with resultSet.queryType === 'blending' checks before calling drillDown.","Attach drill-down to the individual per-query ResultSets rather than the blended one.","Centralize drillDown invocation in a helper that checks query type and returns null gracefully.","Run blended queries separately when drill-down interactivity is required.","Monitor Cube client releases for blending drillDown support."],"tags":["drill-down","unsupported-feature","data-blending"],"backgroundTag":"drilldown-unsupported-query-type","analyzedSha":"7d981676b36392fec34088b9afab6bdcad40207c","analyzedAt":"2026-09-02T03:45:10.400Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}