LINT.INVALID_CONFIG_REFERENCE — Your baseline names a rule that does not exist
- Category: safety
- Level: 0
- Confidence: deterministic
- Downtime class: none — the finding is about a configuration file, not about a statement
- Stability: stable
- Suites: lint
Why this stops the run
An ignore list that names a rule which does not exist announces itself: the findings you meant to silence keep appearing, and you go and look.
A baseline entry does not. An entry that matches nothing produces exactly what a matching entry produces once the underlying code is fixed — nothing. The line stays in the file, reads as a decision somebody made and is still holding, and protects nothing at all.
The commonest way to arrive here is a rule renamed between two releases. Every entry that named the old id becomes silent on the day of the upgrade, and no output anywhere says so.
What to do
Correct the id, or delete the entry. The finding names the entry by its key rather than by its position, because a baseline is sorted deterministically and an index moves whenever an unrelated entry is added — a message pointing at line 14 would point at a different line by tomorrow.
If the rule was renamed and you still want the finding accepted, regenerate the file:
php artisan sqlens:baseline
That command deliberately does not stop on this: it runs with the baseline switched off, because it is writing the file and must see every finding rather than the ones the previous version already accepted. An emergency exit that jams on the thing it bypasses is not an exit.
Why it is undetermined rather than a failure
Nothing was linted. This is not a problem SQLens found in your migrations — it is SQLens saying it could not run with the configuration it was given. That distinction is the same three-valued honesty every result in this tool is held to, and it has a practical consequence: a failure is level-gated, so a refusal reported as one would disappear from a run at a lower level while the command still exited non-zero. You would get the exit code with no explanation anywhere.
Related
LINT.NO_ACTIVE_RULES— the scope admitted no rule, so the run checked nothing. A different way to reach a report that means less than it looks like.