Problem
SshAuthenticationException text is SSH authentication failed for user@host: .... mapDatabaseError (lib/core/database/database_error_mapper.dart) matches authentication failed and returns AuthFailedException with Check the username and password in the connection settings, and describeDatabaseError returns only displayText.
The user sees Authentication failed. Check the username and password in the connection settings for a wrong bastion password or key. The bastion host, the user and the reason are lost, and the hint sends them to the database credentials.
Related: a network failure before authentication (client.authenticated throws a socket error) is also wrapped as SSH authentication failed ... $e (ssh_tunnel_manager.dart, after await client.authenticated).
Scope
- Handle
SshAuthenticationException / SshHostKeyMismatchException before the generic text matching: a mapped SshTunnelException (or keep their text) with the host, user and cause, and a hint about the tunnel settings.
- Tell a transport failure (timeout, refused, reset) from a rejected login in
openTunnel.
Acceptance
Problem
SshAuthenticationExceptiontext isSSH authentication failed for user@host: ....mapDatabaseError(lib/core/database/database_error_mapper.dart) matchesauthentication failedand returnsAuthFailedExceptionwith Check the username and password in the connection settings, anddescribeDatabaseErrorreturns onlydisplayText.The user sees Authentication failed. Check the username and password in the connection settings for a wrong bastion password or key. The bastion host, the user and the reason are lost, and the hint sends them to the database credentials.
Related: a network failure before authentication (
client.authenticatedthrows a socket error) is also wrapped as SSH authentication failed ... $e (ssh_tunnel_manager.dart, afterawait client.authenticated).Scope
SshAuthenticationException/SshHostKeyMismatchExceptionbefore the generic text matching: a mappedSshTunnelException(or keep their text) with the host, user and cause, and a hint about the tunnel settings.openTunnel.Acceptance