When no driver resolves
SQLens supports PostgreSQL 18+ and MySQL 8.4+. When a connection resolves to neither, the run does
not quietly check nothing and report a pass — it reports a named undetermined finding and links
to the section below that explains that exact case.
That is the whole point. "Nothing was found" and "nothing was looked at" are different outcomes, and a tool that renders them the same way teaches you to trust a green it never earned. Each section names what the run saw, what it therefore did not do, and what would change the answer.
reserved_driver
The connection addresses an engine SQLens deliberately does not support — SQLite, SQL Server, or a MariaDB configured under its own driver name. These are reserved rather than merely unknown: the answer is settled, not missing.
Rules are written against a specific engine's behavior. Applying MySQL's rules to another engine produces advice that is confident and wrong, which is worse than none. Nothing was checked on this connection.
And settled is meant literally: these three are declared non-goals, not a backlog. The supported baseline is PostgreSQL and MySQL. A contribution cannot move an engine out of this list, because the list is a statement about what the rules can honestly claim rather than about how much work has been done.
unknown_driver
The connection names a driver SQLens has never heard of: it is neither built in nor registered
through DriverRegistry::extend(). Nothing was checked — an unknown engine is a finding, never a
free pass.
Register it yourself if you have a driver for it, or point the run at a connection that uses a supported engine.
missing_driver_key
The connection's configuration declares no driver key at all, so there is nothing to resolve. This
is almost always a typo or a half-written connection block rather than a deliberate choice.
Add the driver key to the connection in config/database.php.
connection_not_found
No connection with the configured name exists. The finding lists the connections the application
does configure, because the usual cause is a name that drifted — a renamed connection, a copied
config, a typo in sqlens.connection.
Fix the name in sqlens.connection, or add the connection.
version_below_floor
The engine is supported; this version of it is not. The server reports a release below the floor (PostgreSQL 18, MySQL 8.4), and the rules describe behavior older releases do not have.
The message says "upgrade", not "wrong engine", because that is a different action for you to take.
Upgrade the server — or, if you know exactly what you are doing, pin an assumed version with
sqlens.assume_server_version and accept that the run then reasons about the pin rather than about
the live instance.
unknown_server_version
The connection opened, but the server's version could not be established. A version SQLens cannot read is a finding, not a pass: version-dependent rules have no window to evaluate against, so they did not run.
Check that the connecting role may read the server version, or pin one with
sqlens.assume_server_version.
mariadb_behind_mysql_driver
The connection is configured as mysql, and the server answering is MariaDB. Laravel addresses both
through one driver name; they are not one engine. MariaDB does not share MySQL 8.4's online-DDL
behavior, so the rules would describe something the server does not do.
Nothing was checked, and nothing will be: MariaDB is a declared non-goal of this package, not a gap waiting to be filled. The baseline is PostgreSQL and MySQL, and it is not changing.
That is a decision about what the package can honestly promise rather than about effort. Every
MySQL rule here reasons about MySQL 8.4 semantics — its online-DDL algorithms, its
information_schema shapes, its privilege model. MariaDB shares the driver name and the wire
protocol and not those semantics, so the same rules applied to it would produce advice that is
confident, specific, and about another product. Refusing by name is the only answer that stays true.
unverified_engine_identity
No connection was open, so the configured driver name is all there was to go on — and a driver name is a claim, not proof. SQLens will not assert that a connection really addresses the engine its config says it does without having asked the server.
This is the state a fully offline run lands in. Let the run open a connection, or accept the
undetermined for what it is: an honest statement that the engine was never confirmed.
Related
- Understanding
undetermined— the three-valued result model - PostgreSQL driver · MySQL driver