Cannot figure out why DTLS handshake does not complete

I am writing a small WebRTC client from scrach as a hobby project , right now I am stuck in DTLS implementation and cannot figure out what is going wrong with the DTLS handshake. I am trying to make a p2p WebRTC connection from My WebRTC implementation and Gstreamer Implementation.

I send the client hello as a DTLS client to gstreamer it responds with server hello certificate key … Then I respond with the FLIGHT 4 messages as displayed in below diagram but I do not get a response back for flight 5 from Gstreamer.

enter image description here

Gstreamer Logs , when I see Gstreamer logs I do not see Finish message received indication in the logs , what I don’t understand is why Gstreamer is not recognizing my finished message but when I decrypt the DTLS handshake in Wireshark using Master secret and it is able to decrypt and verify the finished message hash and everything seems to be correct on the wireshark decryption side. is there any further way to debug this issue and understand what is going wrong on Gstreamer side.

I also have manually calculated all the encryption steps and verified that everything is correct with respect to flight 4.

Wireshark Pcap file
Wireshark decryption log file
wireshark decryption premaster secret file