cube-js/cube · error · UserError
Dimension '${dimensionName}' has key '${keyReference}' but t
Error message
Dimension '${dimensionName}' has key '${keyReference}' but the key dimension is not included in view '${viewName}' What it means
Thrown while resolving a view: a dimension that uses a key reference declares that key, but the key dimension is not among the view's resolved members (it was not included via the view's includes and is not a membersFromCube default). The view therefore cannot remap the key to viewName.<keyName>.
Source
Thrown at packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts:1066
}
return includes.filter(include => !excludesMap.has(include.member));
}
protected getResolvedMember(type: string, cubeName: string, memberName: string) {
return this.symbols[cubeName]?.cubeObj()?.[type]?.[memberName];
}
protected processKeyReferenceForView(
keyReference: string,
viewName: string,
viewAllMembers: ViewResolvedMember[],
dimensionName: string
): { keyReference: string } {
const viewKeyMember = viewAllMembers.find(v => v.member === keyReference);
if (!viewKeyMember) {
throw new UserError(
`Dimension '${dimensionName}' has key '${keyReference}' but the key dimension is not included in view '${viewName}'`
);
}
return { keyReference: `${viewName}.${viewKeyMember.name}` };
}
protected generateIncludeMembers(members: any[], type: string, targetCube: CubeDefinitionExtended, viewAllMembers: ViewResolvedMember[]) {
return members.map(memberRef => {
const path = memberRef.member.split('.');
const resolvedMember = this.getResolvedMember(type, path[path.length - 2], path[path.length - 1]);
if (!resolvedMember) {
throw new Error(`Can't resolve '${memberRef.member}' while generating include members`);
}
let processedDrillMembers = resolvedMember.drillMembers;
// We need to filter only included drillMembers for viewsView on GitHub (pinned to 7d981676b3)
Solutions
- Add the key dimension to the view's includes so it becomes a resolved view member
- Use membersFromCube to pull all cube members, including the key dimension, into the view
- Remove the key reference from the dimension if the key is not needed in the view
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts:1066 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/f8b952ee0bf57fa3.
Report an issue: GitHub.