cube-js/cube · error

Missing member name for alias: {}

Error message

Missing member name for alias: {}

What it means

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.

Source

Thrown at rust/cube/cubeorchestrator/src/query_result_transform.rs:622

        /// Used only for lookup against the per-row map — never inserted.
        response_key: InternedKey,
    },
}

pub fn build_vanilla_plan<'a>(
    cube_store_result: &'a QueryResult,
    alias_to_member_name_map: &'a HashMap<String, String>,
    annotation: &'a HashMap<String, ConfigItem>,
    query: &NormalizedQuery,
    query_type: &QueryType,
) -> Result<VanillaPlan<'a>> {
    let mut columns = Vec::with_capacity(cube_store_result.columns_pos.len());
    let mut candidates_for_base: IndexMap<&'a str, Vec<(u8, Arc<InternedKey>)>> = IndexMap::new();

    for (alias, &index) in &cube_store_result.columns_pos {
        let member_name = match alias_to_member_name_map.get(alias) {
            Some(m) => m.as_str(),
            None => bail!("Missing member name for alias: {}", alias),
        };
        ensure_member_in_annotation(member_name, annotation)?;
        let annotation_for_member = annotation.get(member_name).unwrap();
        let member_type = annotation_for_member.member_type.as_deref().unwrap_or("");

        let key = Arc::new(InternedKey::new(member_name));

        if let Some(track) = compute_vanilla_granularity_track(member_name, query) {
            candidates_for_base
                .entry(track.base_member)
                .or_default()
                .push((track.level, Arc::clone(&key)));
        }

        let column = cube_store_result.data[index].as_slice();

        columns.push(VanillaColumnPlan {
            column,

View on GitHub (pinned to 7d981676b3)

Solutions

  1. Check for a version mismatch between the orchestrator and Cube Store that could change column alias generation
  2. Inspect the query and annotation to confirm every selected member survives to the result columns
  3. Report as a bug if it reproduces with matching versions on a stable query
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at rust/cube/cubeorchestrator/src/query_result_transform.rs:622 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/298b1d93c656e942. Report an issue: GitHub.