5G RACH procedure issues

Hello Experts,
I got the the picture below, and it is showing how 5G RACH procedure is happening.
I highlighted the main important parameters of RACH in 5G in yellow.

However do you feel that there is a mistake in this picture?

The only one I noticed is that msg3 scheduling grant comes in msg2 (not in msg3 like in the picture above) but this may be just a log collection issue.

But I too have RACH grant in MSG3 only as below:

msg3_grant_raw : 17842368
msg3_grant_bytes : 0
harq_id : 0
scs : 15KHz (0)
mac_pdu[0] : 0
mac_pdu[1] : 0
mac_pdu[2] : 0
mac_pdu[3] : 0
mac_pdu[4] : 0
mac_pdu[5] : 0
mac_pdu[6] : 0
mac_pdu[7] : 0
mac_pdu[8] : 0
mac_pdu[9] : 0
mac_pdu[10] : 0
mac_pdu[11] : 0

Scheduling grant for MSG3 comes from gNodeB in MSG2 but it is used indeed in MSG3. It’s no mistake just a different perception.

Yes, correct.
MSG3 shows what it got from MSG2.