diff --git a/src/ruby/pb/test/client.rb b/src/ruby/pb/test/client.rb
index e6d52232727a2c05a9a4c872e7421bf54d59a3f4..1388685734a3d51635992c6cfe3fc7aba39f02cd 100755
--- a/src/ruby/pb/test/client.rb
+++ b/src/ruby/pb/test/client.rb
@@ -255,6 +255,12 @@ class NamedTests
   def per_rpc_creds
     auth_creds = Google::Auth.get_application_default(@args.oauth_scope)
     kw = auth_creds.updater_proc.call({})
+
+    # TODO(jtattermusch): downcase the metadata keys here to make sure
+    # they are not rejected by C core. This is a hotfix that should
+    # be addressed by introducing auto-downcasing logic.
+    kw = Hash[ kw.each_pair.map { |k, v|  [k.downcase, v] }]
+
     resp = perform_large_unary(fill_username: true,
                                fill_oauth_scope: true,
                                **kw)