Skip to content

dbt_pr_review always runs in lint-only mode even when manifest and warehouse are available #894

@lgwacker

Description

@lgwacker

The dbt_pr_review tool consistently reports "⚙️ Lint-only run — no dbt manifest/warehouse was available" even when:

  1. target/manifest.json exists and is fresh
  2. Snowflake warehouse connections are configured and testable via warehouse_test
  3. The .altimate/review.yml points to the correct manifest

This prevents the full-tier review (lineage blast radius, query equivalence, PII classification) from running.

Environment

  • Project: dbt_data_platform (Snowflake)
  • dbt version: 1.11.11
  • altimate-code: dbt-pr-review skill
  • manifest: target/manifest.json (1.9MB, generated 2026-06-05)
  • Warehouse connections: snowflake_prod (ANALYTICS), snowflake_raw (RAW), snowflake_raw_treated (RAW_TREATED)
  • .altimate/review.yml:
    mode: comment
    severityThreshold: suggestion
    manifestPath: target/manifest.json
    dialect: snowflake
    reviewers: []
    exclude:
      - models/legacy/**
    rubric:
      blockOn: [lineage_breakage, contract_violation, pii_exposure, semantic_change]
      warningPatternThreshold: 3
      thresholds:
        warehouseCostMinRows: 1000000

Steps to reproduce

  1. Compile dbt: dbt compile → target/manifest.json created
  2. Verify warehouse: warehouse_test → snowflake_prod connected successfully
  3. Run review: dbt_pr_review({ base: "origin/main", head: "HEAD", manifest_path: "target/manifest.json" })
  4. Result: "Lint-only run — no dbt manifest/warehouse was available"

What I tried

  • Added warehouse: snowflake_prod to .altimate/review.yml — no effect
  • Ran dbt_pr_review with explicit manifest_path — same result
  • Verified underlying tools work independently:
    • impact_analysis ✅ (uses manifest only)
    • dbt_lineage ✅ (uses manifest only)
    • lineage_check ✅ (with schema_context provided)
    • altimate_core_equivalence ✅ (with schema_context provided)
    • warehouse_test ✅ (all 3 connections pass)

Root cause analysis
The dbt_pr_review tool is a composite that internally calls altimate_core_equivalence and lineage_check. These tools require schema in a specific format (schema_context or schema_path with a tables field), but:

  • dbt_pr_review has no schema_context / schema_path / warehouse parameter
  • The dbt manifest (target/manifest.json) has a different structure (nodes → columns) than what altimate_core_* expects (tables → columns)
  • dbt_pr_review cannot bridge the manifest schema or warehouse schema to its underlying tools

Suggested fix
Add one of these options to dbt_pr_review:

  1. A warehouse parameter to auto-resolve schema from the warehouse
  2. A schema_context / schema_path parameter to pass schema directly
  3. Auto-parse manifest.json schema into the format altimate_core_* expects

Metadata

Field Value
CLI Version 0.8.3
Platform linux
Architecture x64
OS Release 6.6.87.2-microsoft-standard-WSL2
Category bug
Working Directory dbt
Session ID ses_167d1ccdaffee0VmYToIOlBCG0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions