diff --git a/src/core/surface/call.c b/src/core/surface/call.c
index ebd6ace962abae5a693b39ae06614ad778db988c..4a45f67e1d1f3f11eeb0132adacbf193288e685e 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -966,6 +966,7 @@ static void destroy_legacy_state(legacy_state *ls) {
   }
   gpr_free(ls->initial_md_in.metadata);
   gpr_free(ls->trailing_md_in.metadata);
+  gpr_free(ls->details);
   gpr_free(ls);
 }