{"record":{"id":"298b1d93c656e942","repo":"cube-js/cube","slug":"missing-member-name-for-alias","errorCode":null,"errorMessage":"Missing member name for alias: {}","messagePattern":"Missing member name for alias: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"rust/cube/cubeorchestrator/src/query_result_transform.rs","lineNumber":622,"sourceCode":"        /// Used only for lookup against the per-row map — never inserted.\n        response_key: InternedKey,\n    },\n}\n\npub fn build_vanilla_plan<'a>(\n    cube_store_result: &'a QueryResult,\n    alias_to_member_name_map: &'a HashMap<String, String>,\n    annotation: &'a HashMap<String, ConfigItem>,\n    query: &NormalizedQuery,\n    query_type: &QueryType,\n) -> Result<VanillaPlan<'a>> {\n    let mut columns = Vec::with_capacity(cube_store_result.columns_pos.len());\n    let mut candidates_for_base: IndexMap<&'a str, Vec<(u8, Arc<InternedKey>)>> = IndexMap::new();\n\n    for (alias, &index) in &cube_store_result.columns_pos {\n        let member_name = match alias_to_member_name_map.get(alias) {\n            Some(m) => m.as_str(),\n            None => bail!(\"Missing member name for alias: {}\", alias),\n        };\n        ensure_member_in_annotation(member_name, annotation)?;\n        let annotation_for_member = annotation.get(member_name).unwrap();\n        let member_type = annotation_for_member.member_type.as_deref().unwrap_or(\"\");\n\n        let key = Arc::new(InternedKey::new(member_name));\n\n        if let Some(track) = compute_vanilla_granularity_track(member_name, query) {\n            candidates_for_base\n                .entry(track.base_member)\n                .or_default()\n                .push((track.level, Arc::clone(&key)));\n        }\n\n        let column = cube_store_result.data[index].as_slice();\n\n        columns.push(VanillaColumnPlan {\n            column,","sourceCodeStart":604,"sourceCodeEnd":640,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/rust/cube/cubeorchestrator/src/query_result_transform.rs#L604-L640","documentation":"While mapping Cube Store result columns to query members in build_vanilla_plan, a column alias from the result set was not present in the alias-to-member-name map. The input at fault is the alias Cube Store returned for that column — it has no corresponding member in the query that was planned, indicating a mismatch between the executed result shape and the planned query.","triggerScenarios":"Thrown at rust/cube/cubeorchestrator/src/query_result_transform.rs:622 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check for a version mismatch between the orchestrator and Cube Store that could change column alias generation","Inspect the query and annotation to confirm every selected member survives to the result columns","Report as a bug if it reproduces with matching versions on a stable query"],"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"}