LINT.VERSION_PIN_UNREADABLE — the pin could not be read, and nothing was assumed instead
- Category: safety
- Level: 0
- Stability: stable
- Suites: lint
assume_server_version was set to something that is not a version SQLens can parse — a typo, an
empty string from an unset environment variable, a value like latest.
The important part is what happens next: nothing is assumed in its place. No fallback to the
connected server, no fallback to the package's minimum, no fallback to the newest version known.
Version-gated rules report undetermined with this reason instead.
Why not just fall back
Because every available fallback is a guess dressed as an answer, and each one fails differently:
- Falling back to the connected server would silently turn a deterministic file lint into a machine-dependent one — the exact property the pin exists to provide.
- Falling back to the floor would apply the most conservative rules and report findings that do not apply to your server, training people to ignore the output.
- Falling back to the newest would silence rules that do apply.
A named undetermined is the only one of the four that does not require somebody to have guessed
right.
What to do
Fix the value. The expected form is a version string the package can parse:
'assume_server_version' => '18.0', // or '8.4' for MySQL
An unset pin is not an error — null means "decide from the connection", which is a legitimate
configuration and reports nothing. This finding is specifically about a value that was set and could
not be understood, because that is the case where somebody intended something.
Related
LINT.VERSION_SKEW— the pin was readable and disagrees with the server- Understanding
undetermined