This problem (missing correlation due to mismatching CallerTS) has been fixed in 10.7 by using new component id instead of unreliable CallerTS to correlation. It's a known limitation that we could have mismatching CallerTimestamp.
I don't think the App has a problem. Per Anand the reason is: CallerTimeStamp is generated from a callback on one of the correlation tracers, that’s handling the outgoing correlation call.
The tracer that generates the component in txn trace itself is done by another tracer – blamepoint tracer. These tracers have different order depending on technology. There can be times
- when correlation tracer is on a different method altogether, compared to the blame point component,
- in some cases they are on same method
- order in which blame point and correlation trace run will vary based on technologies we monitor
That's why in later version, we use component id instead of callerTimestamp to do correlation more reliably.