{"record":{"id":"b797ffa0302256db","repo":"cube-js/cube","slug":"hierarchy-it-name-not-found-in-cube-cubena","errorCode":null,"errorMessage":"Hierarchy '${it.name}' not found in cube '${cubeName}'","messagePattern":"Hierarchy '(.+?)' not found in cube '(.+?)'","errorType":"validation","errorClass":"UserError","httpStatus":null,"severity":"error","filePath":"packages/cubejs-schema-compiler/src/compiler/CubeEvaluator.ts","lineNumber":593,"sourceCode":"            .map(it => {\n              const levels = it.levels.filter(level => {\n                const member = cube.includedMembers.find(m => m.memberPath === level);\n                if (member && member.type !== 'dimensions') {\n                  const memberName = level.split('.')[1] || level;\n                  errorReporter.error(`Only dimensions can be part of a hierarchy. Please remove the '${memberName}' member from the '${it.name}' hierarchy.`);\n                } else if (member) {\n                  return includedMemberPaths.includes(level);\n                }\n\n                return null;\n              })\n                .filter(Boolean);\n\n              const aliasMember = [cubeName, it.name].join('.');\n\n              const name = hierarchyPathToName[aliasMember];\n              if (!name) {\n                throw new UserError(`Hierarchy '${it.name}' not found in cube '${cubeName}'`);\n              }\n\n              return {\n                // Title might be overridden in the view\n                title: cube.hierarchies?.[it.name]?.override?.title || it.title,\n                ...it,\n                aliasMember,\n                name,\n                levels\n              };\n            })\n            .filter(it => it.levels.length);\n\n          cube.evaluatedHierarchies = [...(cube.evaluatedHierarchies || []), ...filteredHierarchies];\n        }\n      }\n\n      cube.evaluatedHierarchies = (cube.evaluatedHierarchies || []).map((hierarchy) => ({","sourceCodeStart":575,"sourceCodeEnd":611,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/packages/cubejs-schema-compiler/src/compiler/CubeEvaluator.ts#L575-L611","documentation":"While preparing cube hierarchies, Cube resolves each hierarchy level's member alias into a canonical name via hierarchyPathToName. If the joined alias 'cube.member' has no entry, the level references a member that doesn't exist, so it throws a UserError at compile time.","triggerScenarios":"Declaring a hierarchy whose levels reference dimensions/measures that don't exist in the cube (or in the joined cube for shared hierarchies/views), e.g. hierarchies: { Location: { levels: [NonexistentDim] } }.","commonSituations":"Typos in hierarchy level names; renaming/deleting a dimension without updating hierarchies; hierarchies defined in a view referencing members not exposed by the underlying cube; schema compilation after partial edits.","solutions":["Fix hierarchy level names to match existing dimension/measure names exactly (with correct casing)","Re-run compilation and check for other member-not-found errors to locate the offending level","Remove or update hierarchies referencing deleted/renamed members"],"exampleFix":"// before\nhierarchies: { Location: { levels: [location.city, location.regoin] } }\n// after\nhierarchies: { Location: { levels: [location.city, location.region] } }","handlingStrategy":"try-catch","validationCode":"const cube = evaluator.cubeFromPath(cubeName);\nfor (const level of hierarchy.levels || []) {\n  if (!(level in (cube.dimensions || {})) && !(level in (cube.measures || {}))) throw new Error(`Hierarchy level ${level} missing in ${cubeName}`);\n}","typeGuard":null,"tryCatchPattern":"try { compiler.compile(); } catch (e) { if (e instanceof UserError && e.message.includes('not found in cube')) { console.error(e.message); } throw e; }","preventionTips":["Reference hierarchy levels by copying exact member names","Run schema compilation in CI to catch broken hierarchies early","Update hierarchies whenever dimensions are renamed/removed"],"tags":["hierarchy","schema","compile-time"],"backgroundTag":"member-not-found","analyzedSha":"7d981676b36392fec34088b9afab6bdcad40207c","analyzedAt":"2026-09-02T03:45:10.400Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}