Skip to main content

Deploying DbtProjectComponent to Dagster+ — missing manifest.json error

Problem description

When deploying a code location that uses DbtProjectComponent to Dagster+, the deploy fails with:

DagsterDbtManifestNotFoundError: /path/to/target/manifest.json does not exist.

Root cause

DbtProjectComponent reads from your dbt project's manifest.json at load time. The manifest is generated by running dbt parse (or another dbt command that produces the manifest) against the project. CI/CD pipelines that deploy the code without first running dbt parse ship a project missing the manifest, and the agent fails to load the component.

Solution

Add a dbt parse step to your deployment pipeline before the Dagster+ deploy step.

GitHub Actions

- name: Prepare dbt projects
run: |
cd path/to/dbt/project
dbt deps
dbt parse

- name: Deploy to Dagster+
run: |
dagster-cloud ci deploy --location-name=$DAGSTER_CODE_LOCATION_NAME

Docker deployments

Run dbt deps and dbt parse during the image build so the manifest is baked into the image:

RUN cd /path/to/dbt/project && \
dbt deps && \
dbt parse