cube-js/cube · error
The query limit has been exceeded.
Error message
The query limit has been exceeded.
What it means
Resource guard in normalizeQuery: for non-persistent queries the requested `limit` exceeds the CUBEJS_DB_QUERY_LIMIT environment cap. Unlike UserError-based validations, this throws a plain Error, signaling a hard server-side limit rather than a client input mistake.
Source
Thrown at packages/cubejs-api-gateway/src/query.js:468
}
const regularToTimeDimension = (query.dimensions || []).filter(d => typeof d === 'string' && d.split('.').length === 3).map(d => ({
dimension: d.split('.').slice(0, 2).join('.'),
granularity: d.split('.')[2]
}));
const timezone = value.timezone || 'UTC';
const def = getEnv('dbQueryDefaultLimit') <= getEnv('dbQueryLimit')
? getEnv('dbQueryDefaultLimit')
: getEnv('dbQueryLimit');
let newLimit;
if (!persistent) {
if (
typeof query.limit === 'number' &&
query.limit > getEnv('dbQueryLimit')
) {
throw new Error('The query limit has been exceeded.');
}
newLimit = typeof query.limit === 'number'
? query.limit
: def;
} else {
newLimit = query.limit;
}
return {
...query,
...(query.order ? { order: normalizeQueryOrder(query.order) } : {}),
limit: newLimit,
timezone,
filters: normalizeQueryFilters(query.filters || [], timezone),
dimensions: (query.dimensions || []).filter(d => typeof d !== 'string' || d.split('.').length !== 3),
timeDimensions: (query.timeDimensions || []).map(td => {
const compareDateRange = td.compareDateRange ? td.compareDateRange.map((currentDateRange) => (typeof currentDateRange === 'string' ? dateParser(currentDateRange, timezone) : currentDateRange)) : null;
View on GitHub (pinned to 7d981676b3)
Solutions
- Reduce the query `limit` to at most the value of CUBEJS_DB_QUERY_LIMIT (default 10000).
- If a higher limit is genuinely needed, raise CUBEJS_DB_QUERY_LIMIT in the orchestrator configuration.
- For exports or large result sets, use the download/export API instead of a huge single-query limit.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/cubejs-api-gateway/src/query.js:468 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/1fa47a1653869444.
Report an issue: GitHub.