I've recently tried to work with the Signal protocol, but the documentation isn't great. I've come across a problem where the messages being sent include the pre key because the client has unacknowledged pre key messages even if a session has already been established. I've checked the source code of the Java client, but couldn't figure out how the flag is cleared.
Can someone explain the concept behind unacknowledged pre key messages? Thank you.
Other posts (without any answer): Signal forum 1, Signal forum 2, Reddit