Skip to main content

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.