You have to be careful with how you're handling request.respond when making asynchronous calls with Node.js because you can inadvertently respond before you mean to. If I understand what you're trying to do above, you're executing the request and then you want to loop through each of the results and call confirmTracking.makeRequest on it. So essentially a separate process will be created each time you call makeRequest. As soon as the last record is hit by the forEach call, the request.respond() you have at the bottom will be called. This means that your READ script will respond to the calling application before the calls to makeRequest are done.
What you need to do is a tad complicated but start by removing the calls to request.respond(). You only want to call this once when things are done. In order to know that things are done, you'll need to keep track of how many requests have been made. So you'll want to do something like this:
success: function (results) {
var recordCount = results.length;
var recordsProcessed = 0;
results.forEach(function(item) {
confirmTracking.makeRequest({...}
, function(data, err) {
recordsProcessed++;
//DoProcessingHere
//Only call request.respond if recordsProcessed == recordCount
})
})
}