# state: modified not working in dbt set up using python libraries

**URL:** <https://discourse.getdbt.com/t/state-modified-not-working-in-dbt-set-up-using-python-libraries/20974>\
**Category:** Help\
**Created:** [September 4, 2026, 12:00pm UTC](https://discourse.getdbt.com/t/state-modified-not-working-in-dbt-set-up-using-python-libraries/20974 "2026-09-04T12:00:18Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sayeed](https://avatars.discourse-cdn.com/v4/letter/s/ed8c4c/32.png) [@Sayeed](https://discourse.getdbt.com/u/Sayeed)\
**Post date:** [September 4, 2026, 12:00pm UTC](https://discourse.getdbt.com/t/state-modified-not-working-in-dbt-set-up-using-python-libraries/20974/1 "2026-09-04T12:00:18Z")

</div>

## The problem I’m having

## I am trying to set up dbt build to use state:modified

## I have copied over the folder containing manifest.json

## However, when I run dbt\_build , with full-refresh and state: modified --state ‘path to the previous manifest.json’, dbt\_build still recreates the model?

I am on dbt core 1.10.3

```auto
Put code inside backticks
  to preserve indentation
    which is especially important 
      for Python and YAML! 

```

---

<div class="post-metadata">

**Author:** ![Surya](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/surya/32/3763_2.png) [@Surya](https://discourse.getdbt.com/u/Surya)\
**Post date:** [September 11, 2026, 3:41am UTC](https://discourse.getdbt.com/t/state-modified-not-working-in-dbt-set-up-using-python-libraries/20974/2 "2026-09-11T03:41:44Z")

</div>

If you’re running **dbt Core 1.10.3 through the Python library** , `state:modified` should determine **which nodes are selected** based on comparison with the previous `manifest.json`. It does **not** mean "run the model incrementally.

### **The important part**

If you’re running:

```auto
dbt build 
  --full-refresh 
  --state /path/to/previous/manifest 
  --select state:modified

```

then:

```auto
state:modified
        ↓
Select models that changed
        ↓
--full-refresh
        ↓
Rebuild those selected models from scratch

```

So if the model is selected by `state:modified`, **`--full-refresh` will intentionally recreate it**.

If your intention is: Only build models that have changed, and don’t rebuild unchanged models

then use:

```auto
dbt build 
  --state /path/to/previous/manifest 
  --select state:modified

```

**without `--full-refresh`.**

---

<div class="post-metadata">

**Author:** ![Sayeed](https://avatars.discourse-cdn.com/v4/letter/s/ed8c4c/32.png) [@Sayeed](https://discourse.getdbt.com/u/Sayeed)\
**Post date:** [September 11, 2026, 8:47am UTC](https://discourse.getdbt.com/t/state-modified-not-working-in-dbt-set-up-using-python-libraries/20974/3 "2026-09-11T08:47:04Z")

</div>

Hi Surya,

Thank you for your response.

The issue I’m facing is that even when there is no change to the model, the model is getting picked up for build. Ideally and as per dbt specs the model should not get picked up for build if I use state:modified whether I pass full-refresh or not
