cube-js/cube · error · Error
Select queries for ksql allowed only from Cube Store. In ord
Error message
Select queries for ksql allowed only from Cube Store. In order to query ksql create pre-aggregation first.
What it means
A capability guard in KsqlDriver.query: ksqlDB pull/SELECT queries are only executable through Cube Store's ksql connector, so direct SELECTs from the Cube orchestrator are rejected. Any caller issuing a SELECT against this driver (data queries, testConnection, table listing paths) hits this. The supported workflow is to first build a pre-aggregation from the ksql stream and query that.
Source
Thrown at packages/cubejs-ksql-driver/src/KsqlDriver.ts:175
`ksql API error for '${
body.ksql
}': ${
(<any>e).response?.data?.message ||
(<any>e).response?.statusCode ||
(<any>e).message ||
(<any>e).toString()
}`
);
}
}
protected prepareQueryWithParams(query: string, values?: unknown[]): string {
return formatAnsi(query, values || []);
}
public async query<R = unknown>(query: string, values?: unknown[], options: KsqlQueryOptions = {}): Promise<R> {
if (query.toLowerCase().startsWith('select')) {
throw new Error('Select queries for ksql allowed only from Cube Store. In order to query ksql create pre-aggregation first.');
}
const { data } = await this.apiQuery('/ksql', {
ksql: `${this.prepareQueryWithParams(query, values)};`,
...(options.streamOffset ? {
streamsProperties: {
'ksql.streams.auto.offset.reset': options.streamOffset
}
} : {})
});
return data[0];
}
public async testConnection() {
await this.query('SHOW VARIABLES');
if (this.kafkaClient) {
await this.kafkaClient.admin().connect();View on GitHub (pinned to 7d981676b3)
Solutions
- Do not send SELECT statements directly to ksql from Cube; ksqlDB pull/push queries are not executed by this driver
- Wrap the ksql data in a pre-aggregation so the data is loaded into Cube Store and queried there
- Use a different driver or direct ksqlDB HTTP client if you truly need ad-hoc SELECTs
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/cubejs-ksql-driver/src/KsqlDriver.ts:175 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of cube-js/cube@7d981676b3 (2026-09-02).
Data as JSON: /api/errors/1ef546b65b985a6d.
Report an issue: GitHub.