{"record":{"id":"39567a67c584b70a","repo":"cube-js/cube","slug":"cubename-propertyname-cannot-be-resolved-th","errorCode":null,"errorMessage":"${cubeName}.${propertyName} cannot be resolved. There's no such member or cube.","messagePattern":"(.+?)\\.(.+?) cannot be resolved\\. There's no such member or cube\\.","errorType":"exception","errorClass":"UserError","httpStatus":null,"severity":"error","filePath":"packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts","lineNumber":1586,"sourceCode":"          return () => '';\n        }\n        if (propertyName === '_objectWithResolvedProperties') {\n          return true;\n        }\n        if (cube[propertyName as string]) {\n          const index = depsResolveFn(propertyName, parentIndex);\n          if (cube[propertyName as string].type === 'time') {\n            return this.timeDimDependenciesProxy(index);\n          }\n\n          return '';\n        }\n        if (self.symbols[propertyName]) {\n          const index = depsResolveFn(propertyName, parentIndex);\n          return this.cubeDependenciesProxy(index, propertyName);\n        }\n        if (typeof propertyName === 'string') {\n          throw new UserError(`${cubeName}.${propertyName} cannot be resolved. There's no such member or cube.`);\n        }\n        return undefined;\n      }\n    });\n  }\n\n  protected timeDimDependenciesProxy(parentIndex) {\n    const self = this;\n    const { depsResolveFn } = self.resolveSymbolsCallContext || {};\n    return new Proxy({}, {\n      get: (v, propertyName) => {\n        if (propertyName === '_objectWithResolvedProperties') {\n          return true;\n        }\n        if (propertyName === 'toString') {\n          return () => '';\n        }\n        if (typeof propertyName === 'string') {","sourceCodeStart":1568,"sourceCodeEnd":1604,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts#L1568-L1604","documentation":"Same family as the cube proxy error, but raised by the dependencies-resolution proxy (cubeDependenciesProxy) used when collecting cube dependencies. Accessing `${cubeName}.member` where the member isn't a known symbol produces this UserError. It indicates the compile-time dependency graph hit a member that doesn't exist.","triggerScenarios":"During dependency collection, a SQL template references `${Cube.member}` where `member` is neither defined in the cube's symbols nor any registered cube. E.g. pre-aggregation or join SQL referencing a nonexistent member.","commonSituations":"Copy-pasted SQL between cubes where the member only exists in the original cube; refactoring cube names; typos in segment/measure names inside pre-aggregation definitions.","solutions":["Verify the member name exists in the referenced cube's definition.","Fix the typo or restore/rename the member across all usages (search for the old name).","Ensure nested references point at symbols defined in the same cube or an imported/joined cube.","Compile all data models locally (yarn tsc / schema validation) to surface stale references."],"exampleFix":"// before\npreAggregations: { main: { measures: [CUBE.totalRevenue], dimensions: [CUBE.userRegin] } }\n// after\npreAggregations: { main: { measures: [CUBE.totalRevenue], dimensions: [CUBE.userRegion] } }","handlingStrategy":"validation","validationCode":"// compile the schema in CI to catch stale references\ngrep -rn '\\${[A-Za-z_]*\\.' schema/ | grep -v node_modules  # manually audit referenced member names","typeGuard":null,"tryCatchPattern":"try { await compiler.compile(); } catch (e) { if (/cannot be resolved.*no such member or cube/.test(e.message)) { console.error('Stale member in SQL template:', e.message); } throw e; }","preventionTips":["Run schema compilation as part of CI","Keep pre-aggregation and join SQL in sync with member renames","Avoid copy-pasting SQL across cubes without adjusting member paths"],"tags":["schema-compiler","unresolved-reference","dependency-graph"],"backgroundTag":"unresolved-member-reference","analyzedSha":"7d981676b36392fec34088b9afab6bdcad40207c","analyzedAt":"2026-09-02T03:45:10.400Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}