The trap in this scenario is that a degraded execution-success KPI with failed-execution counters tells you the phase, not the cause, and nothing past the source gNB is actually verified yet.
Last safely verified checkpoint: HO preparation completed. An execution attempt being counted means the source made the decision, the Xn Handover Request was acknowledged by the target, and the source issued the RRCReconfiguration with reconfigurationWithSync to the UE. Everything from the UE’s RACH to the target onward is unverified. You cannot say the UE received the command intact, RACHed, or reverted, without L3.
The three items I would put in the ticket, in order:
Ticket item 1. Pull per-UE L3 for a set of failed attempts from the UE and the source gNB: the RRCReconfiguration (handover command) and the T304 outcome. T304 expiry versus completion is the single fact that says whether execution failed at the air interface or the UE reached the target. State on the ticket that no execution-side root cause is permitted until this is in hand.
Ticket item 2. Request target-side evidence for the same attempts: did the UE’s PRACH Msg1/Msg3 arrive at the target, and was RRCReconfigurationComplete received. This one item splits the failure into three different faults with three different fixes: UE never reached the target (coverage, timing advance, PRACH config, wrong PCI in the command), reached it but no reconfig-complete (bad target configuration or contention), or reverted to source (re-establishment). Without it you cannot tell which.
Ticket item 3. Prove correlation before any analysis. Confirm both gNBs share a disciplined time source (PTP or NTP to the same grandmaster); if not, do not overlay traces on raw wall-clock. Correlate UE identity on the XnAP Old and New NG-RAN node UE ID pair plus the C-RNTI and the newUE-Identity carried in the reconfiguration and seen at target RACH. Align time using a shared Xn message as the anchor (Handover Request and its Ack appear in both traces), compute the offset from that, then apply it. No call flow is accepted as reconstructed until this passes.
What I would refuse to conclude at this stage: that any mobility parameter is wrong. Failed-execution counters do not implicate A3 offset, TTT, hysteresis, or CIO, because those govern the trigger, and the failure here is in execution, a later phase. I would also refuse to blame the target gNB when the UE may never have reached it, and refuse to trust any two traces overlaid before their clock offset is established, since a mis-aligned overlay manufactures a false call flow that looks like a real one.
Net: verify the trigger and preparation are not the issue, get T304 plus target RACH to localise the execution failure, and lock trace correlation before touching a single parameter.