[Bug] CLI flags do not take precedence over env var DBT_DEFER_STATE
- Dominant language
- Rust
- Stars
- 13.8k
- Forks
- 2.6k
- Avg merge
- 21h 31m
- Merged PRs (30d)
- 56
Description
### Is this a new bug in dbt-core?
- [x] I believe this is a new bug in dbt-core
- [x] I have searched the existing issues, and I could not find an existing issue for this bug
### Current Behavior
When specifying the env var DBT_DEFER_STATE=stateprod, it appears to be considered even when you try to overrule the state manually using `dbt test --defer --state state` (non-prod)
Do I miss something regarding
### Expected Behavior
Expected to be able to overwrite the state using the flags, as stated in the docs: https://docs.getdbt.com/reference/node-selection/syntax#establishing-state
### Steps To Reproduce
The following example results in `stateprod` being used as state.
When doing the same with DBT_STATE (and unsetting DBT_DEFER_STATE), it works as expected, and the flag gets precedence. i.e. the used state is 'state'
### Relevant log output
```shell
NA
```
### Environment
```markdown
- OS: Windows 11
- Python: 3.10.5
- dbt: 1.8.7
```
### Which database adapter are you using with dbt?
spark
### Additional Context
I noticed that the on-run-end DOES use the expected state (provided via the cli flags) when having DBT_DEFER_STATE set! Causing inconsistent catalogs being referred in my case.
Contributor guide
Assessment
This issue has not been assessed yet.