diff --git a/src/core/lib/surface/server.c b/src/core/lib/surface/server.c
index ac5a2b4160f9f20f0700e6e943466b348fff1bdb..2829a86a94297c656fe2817c33580a5a112da51b 100644
--- a/src/core/lib/surface/server.c
+++ b/src/core/lib/surface/server.c
@@ -936,6 +936,7 @@ void *grpc_server_register_method(
   m->method = gpr_strdup(method);
   m->host = gpr_strdup(host);
   m->next = server->registered_methods;
+  m->payload_handling = payload_handling;
   m->flags = flags;
   server->registered_methods = m;
   return m;