THRIFT-4225: Delete callback if RPC send failed
diff --git a/compiler/cpp/src/thrift/generate/t_js_generator.cc b/compiler/cpp/src/thrift/generate/t_js_generator.cc
index 512fe3c..57baa9b 100644
--- a/compiler/cpp/src/thrift/generate/t_js_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_js_generator.cc
@@ -1613,10 +1613,11 @@
     indent_down();
     f_service_ << indent() << "}" << endl;
 
-    // Reset the transport if there was a serialization error
+    // Reset the transport and delete registered callback if there was a serialization error
     f_service_ << indent() << "catch (e) {" << endl;
     indent_up();
     if (gen_node_) {
+      f_service_ << indent() << "delete this._reqs[this.seqid()];" << endl;
       f_service_ << indent() << "if (typeof " << outputVar << ".reset === 'function') {" << endl;
       f_service_ << indent() << "  " << outputVar << ".reset();" << endl;
       f_service_ << indent() << "}" << endl;