diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c
index b9b6d464a0..4f6af23ae5 100644
--- a/src/backend/libpq/auth-scram.c
+++ b/src/backend/libpq/auth-scram.c
@@ -433,8 +433,14 @@ pg_be_scram_exchange(void *opaq, const char *input, int inputlen,
 			result = SASL_EXCHANGE_FAILURE;
 	}
 
-	if (result == SASL_EXCHANGE_FAILURE && state->logdetail && logdetail)
-		*logdetail = state->logdetail;
+	if (result == SASL_EXCHANGE_FAILURE && logdetail)
+	{
+		if (state->logdetail)
+			*logdetail = state->logdetail;
+		else if (!state->doomed)
+			*logdetail = psprintf(_("Password does not match for user \"%s\"."),
+										state->port->user_name);
+	}
 
 	if (*output)
 		*outputlen = strlen(*output);
