{"record":{"id":"f8b952ee0bf57fa3","repo":"cube-js/cube","slug":"dimension-dimensionname-has-key-keyreferen","errorCode":null,"errorMessage":"Dimension '${dimensionName}' has key '${keyReference}' but the key dimension is not included in view '${viewName}'","messagePattern":"Dimension '(.+?)' has key '(.+?)' but the key dimension is not included in view '(.+?)'","errorType":"validation","errorClass":"UserError","httpStatus":null,"severity":"error","filePath":"packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts","lineNumber":1066,"sourceCode":"    }\n\n    return includes.filter(include => !excludesMap.has(include.member));\n  }\n\n  protected getResolvedMember(type: string, cubeName: string, memberName: string) {\n    return this.symbols[cubeName]?.cubeObj()?.[type]?.[memberName];\n  }\n\n  protected processKeyReferenceForView(\n    keyReference: string,\n    viewName: string,\n    viewAllMembers: ViewResolvedMember[],\n    dimensionName: string\n  ): { keyReference: string } {\n    const viewKeyMember = viewAllMembers.find(v => v.member === keyReference);\n\n    if (!viewKeyMember) {\n      throw new UserError(\n        `Dimension '${dimensionName}' has key '${keyReference}' but the key dimension is not included in view '${viewName}'`\n      );\n    }\n\n    return { keyReference: `${viewName}.${viewKeyMember.name}` };\n  }\n\n  protected generateIncludeMembers(members: any[], type: string, targetCube: CubeDefinitionExtended, viewAllMembers: ViewResolvedMember[]) {\n    return members.map(memberRef => {\n      const path = memberRef.member.split('.');\n      const resolvedMember = this.getResolvedMember(type, path[path.length - 2], path[path.length - 1]);\n      if (!resolvedMember) {\n        throw new Error(`Can't resolve '${memberRef.member}' while generating include members`);\n      }\n\n      let processedDrillMembers = resolvedMember.drillMembers;\n\n      // We need to filter only included drillMembers for views","sourceCodeStart":1048,"sourceCodeEnd":1084,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts#L1048-L1084","documentation":"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>.","triggerScenarios":"Thrown at packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts:1066 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7d981676b36392fec34088b9afab6bdcad40207c","analyzedAt":"2026-09-02T03:45:10.400Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}