diff --git a/src/cpp/client/credentials.cc b/src/cpp/client/credentials.cc
index a140f551e0dffc918223cf4deb3b8fd2ee9f9238..eff0892810b81a2c748e3f76e68dd88c8c820303 100644
--- a/src/cpp/client/credentials.cc
+++ b/src/cpp/client/credentials.cc
@@ -47,7 +47,8 @@ grpc_credentials *Credentials::GetRawCreds() { return creds_; }
 
 std::unique_ptr<Credentials> CredentialsFactory::GoogleDefaultCredentials() {
   grpc_credentials *c_creds = grpc_google_default_credentials_create();
-  std::unique_ptr<Credentials> cpp_creds(new Credentials(c_creds));
+  std::unique_ptr<Credentials> cpp_creds(
+      c_creds == nullptr ? nullptr : new Credentials(c_creds));
   return cpp_creds;
 }