diff --git a/lib/gat/handlers/pool/spool/kitchen/chef.go b/lib/gat/handlers/pool/spool/kitchen/chef.go
index ca0af0aed22de8dfd32e658a0fe3d461e87fb7bf..60c70acad6a4bc746d1fa4b808144cb88c3b40fa 100644
--- a/lib/gat/handlers/pool/spool/kitchen/chef.go
+++ b/lib/gat/handlers/pool/spool/kitchen/chef.go
@@ -275,6 +275,7 @@ func (T *Chef) Burn(conn *fed.Conn) {
 	if !ok {
 		return
 	}
+	r.recipe.Free()
 	_ = conn.Close()
 
 	delete(T.byConn, conn)
@@ -318,8 +319,11 @@ func (T *Chef) Close() {
 
 	maps.Clear(T.byName)
 	T.order = T.order[:0]
-	for conn := range T.byConn {
+	for conn, r := range T.byConn {
+		r.recipe.Free()
 		_ = conn.Close()
+
 		delete(T.byConn, conn)
+		delete(r.conns, conn)
 	}
 }