diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c
index 0274d6c253d..8a8d3b4481f 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -559,23 +559,28 @@ connect_pg_server(ForeignServer *server, UserMapping *user)
 		if (MyProcPort->has_scram_keys && UseScramPassthrough(server, user))
 		{
 			int			len;
+			int			encoded_len;
 
 			keywords[n] = "scram_client_key";
 			len = pg_b64_enc_len(sizeof(MyProcPort->scram_ClientKey));
 			/* don't forget the zero-terminator */
 			values[n] = palloc0(len + 1);
-			pg_b64_encode((const char *) MyProcPort->scram_ClientKey,
-						  sizeof(MyProcPort->scram_ClientKey),
-						  (char *) values[n], len);
+			encoded_len = pg_b64_encode((const char *) MyProcPort->scram_ClientKey,
+										sizeof(MyProcPort->scram_ClientKey),
+										(char *) values[n], len);
+			if (encoded_len < 0)
+				elog(ERROR, "could not encode SCRAM client key");
 			n++;
 
 			keywords[n] = "scram_server_key";
 			len = pg_b64_enc_len(sizeof(MyProcPort->scram_ServerKey));
 			/* don't forget the zero-terminator */
 			values[n] = palloc0(len + 1);
-			pg_b64_encode((const char *) MyProcPort->scram_ServerKey,
-						  sizeof(MyProcPort->scram_ServerKey),
-						  (char *) values[n], len);
+			encoded_len = pg_b64_encode((const char *) MyProcPort->scram_ServerKey,
+										sizeof(MyProcPort->scram_ServerKey),
+										(char *) values[n], len);
+			if (encoded_len < 0)
+				elog(ERROR, "could not encode SCRAM server key");
 			n++;
 		}