PicnicSupermarket / dbt-score

Linter for dbt metadata
https://dbt-score.picnic.tech
MIT License
80 stars 5 forks source link

dbt-score crashes when a manifest file is unparseable #70

Open nick-kogan opened 1 month ago

nick-kogan commented 1 month ago

dbt-score doesn't properly handle manifest.json files that contain invalid JSON.

Steps to reproduce:

  1. Create a directory, e.g. example_dbt_project, and a target directory within that directory.
  2. Create a manifest.json file containing invalid JSON (e.g. an empty file) in the target directory.
  3. cd into example_dbt_project and run dbt-score lint.

Expected behavior: dbt-score detects that the manifest file is invalid and handles it gracefully, e.g. by writing an error message about the manifest being invalid and exiting.

Actual behavior: dbt-score raises an exception from within json.decoder library (e.g. json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)).

matthieucan commented 2 weeks ago

Hi @nick-kogan, thanks for reporting this issue! Given dbt-score merely forwards the exception raised somewhere else (e.g. in dbt's library), isn't it best to show it to users?