diff --git a/src/node/ext/byte_buffer.cc b/src/node/ext/byte_buffer.cc
index d17e46835465c321b811f62b5e16cbac11c4d97c..3479a67702976377e58373bd8618d2aa7ac720fe 100644
--- a/src/node/ext/byte_buffer.cc
+++ b/src/node/ext/byte_buffer.cc
@@ -78,6 +78,7 @@ Local<Value> ByteBufferToBuffer(grpc_byte_buffer *buffer) {
   size_t length = GPR_SLICE_LENGTH(slice);
   char *result = new char[length];
   memcpy(result, GPR_SLICE_START_PTR(slice), length);
+  gpr_slice_unref(slice);
   return scope.Escape(MakeFastBuffer(
       Nan::NewBuffer(result, length, delete_buffer, NULL).ToLocalChecked()));
 }