dbt-labs/dbt-core · error

manifest should preserve the sequence-valued argument

Error message

manifest should preserve the sequence-valued argument

What it means

Test-only assertion in the #13604 regression test: after manifest resolution, the sequence-valued `value` argument must be preserved verbatim in the serialized definition, matching dbt Core's behavior of storing the raw unvalidated value. Fires if normalization rewrites or flattens the sequence.

Solutions

  1. Fix resolve_manifest_selectors to keep raw sequence-valued arguments untouched
  2. Check that definition cloning does not re-serialize through the normalized AST
  3. Treat failure as a manifest serialization regression
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/dbt-parser/src/resolve/resolve_selectors.rs:933 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of dbt-labs/dbt-core@0267ce9170 (2026-09-07). Data as JSON: /api/errors/ef986beef4ff26f8. Report an issue: GitHub.

Appendix: source

Thrown at crates/dbt-parser/src/resolve/resolve_selectors.rs:933

        // dbt Core stores the raw, unvalidated `value` in the manifest.
        let resolved_selectors = HashMap::from([(
            "default".to_string(),
            SelectorEntry {
                include: normalized_include,
                is_default: false,
                description: None,
                definition: original_definition,
            },
        )]);
        let manifest_selectors = resolve_manifest_selectors(resolved_selectors)?;
        let definition = manifest_selectors
            .get("default")
            .and_then(|selector| selector.definition.as_ref())
            .expect("selector definition should be present");
        let value = definition
            .get("value")
            .and_then(|v| v.as_sequence())
            .expect("manifest should preserve the sequence-valued argument");
        assert_eq!(value.len(), 1);
        assert_eq!(value[0].as_str(), Some("models"));
        Ok(())
    }
}

View on GitHub (pinned to 0267ce9170)