cube-js/cube · error · Error
Can't resolve '${m}'
Error message
Can't resolve '${m}' What it means
This member resolution helper tries to interpret a string as a measure, then a dimension, then a segment. If none match a member defined in the schema, it throws a plain Error "Can't resolve '<name>'", meaning the requested name doesn't exist in the compiled data model.
Source
Thrown at packages/cubejs-schema-compiler/src/adapter/BaseQuery.js:1630
.slice(0, 2)
.join('.');
return [m, this.memberInstanceByPath(trimmedPath).isMultiStage()];
}));
}
memberInstanceByPath(m) {
let member;
if (!member && this.cubeEvaluator.isMeasure(m)) {
member = this.newMeasure(m);
}
if (!member && this.cubeEvaluator.isDimension(m)) {
member = this.newDimension(m);
}
if (!member && this.cubeEvaluator.isSegment(m)) {
member = this.newSegment(m);
}
if (!member) {
throw new Error(`Can't resolve '${m}'`);
}
return member;
}
multiStageWithQueries(member, queryContext, memberChildren, withQueries) {
// TODO calculate based on remove_filter in future
const wouldNodeApplyFilters = !memberChildren[member];
let memberFrom = memberChildren[member]
?.map(child => this.multiStageWithQueries(child, this.childrenMultiStageContext(member, queryContext), memberChildren, withQueries));
const unionFromDimensions = memberFrom ? R.uniq(R.flatten(memberFrom.map(f => f.dimensions))) : queryContext.dimensions;
const unionDimensionsContext = { ...queryContext, dimensions: unionFromDimensions.filter(d => !this.newDimension(d).isMultiStage()) };
// TODO is calling multiStageWithQueries twice optimal?
memberFrom = memberChildren[member] &&
R.uniqBy(
f => f.alias,
memberChildren[member].map(child => this.multiStageWithQueries(child, this.childrenMultiStageContext(member, unionDimensionsContext), memberChildren, withQueries))
);
const selfContext = this.selfMultiStageContext(member, queryContext, wouldNodeApplyFilters);View on GitHub (pinned to 7d981676b3)
Solutions
- Verify the member exists in the schema with exactly that Cube.name path
- Check for typos/renames and update the query
- Ensure the schema file defining the member compiles (check compiler logs for earlier errors)
- Use the meta API (/meta or compiler meta) to list available members
Example fix
// before
query.members(['Orders.totalRevenue']) // not defined
// after
cube: `Orders`, measures: { totalRevenue: { type: 'sum', sql: `amount` } }
// then query 'Orders.totalRevenue' Defensive patterns
Strategy: try-catch
Validate before calling
// validate members against /meta before querying
const meta = await cubeApi.meta();
const known = new Set(meta.cubes.flatMap(c =>
[...c.measures, ...c.dimensions, ...c.segments].map(m => m.name)));
const unknown = queryMembers.filter(m => !known.has(m));
if (unknown.length) throw new Error(`Unknown members: ${unknown.join(', ')}`); Type guard
const memberExists = (meta, name) => meta.cubes.some(c => [...c.measures, ...c.dimensions, ...c.segments].some(m => m.name === name));
Try / catch
try {
const m = resolveMember(name);
} catch (e) {
if (/^Can't resolve '/.test(e.message)) {
console.warn(`Member ${name} not in schema; check /meta for valid names`);
} else throw e;
} Prevention
- Fetch /meta at startup and validate all configured member names
- Search/replace old member names after schema renames
- Always use fully qualified 'CubeName.memberName' paths
- Add integration tests that compile all saved dashboard queries
When it happens
Trigger: Referencing a member path like 'Orders.totalAmount' that isn't defined (typo, renamed member, wrong cube name), or passing a name without the Cube prefix.
Common situations: Schema refactors renaming members while queries still use old names, typos in dashboard configs, members defined in a cube not visible due to security context or missing file compilation.
Related errors
- 'pre_aggregations' must be a sequence
- Table names should be in <table> or <schema>.<table> format
- Can't parse date: '${from}'
- Can't parse date: '${to}'
- Can't parse date: '${dateString}'
AI-assisted analysis of cube-js/cube@7d981676b3 (2026-09-02).
Data as JSON: /api/errors/02f1384aa44eed85.
Report an issue: GitHub.