I have exactly the same issue; my API is up and running all the time and receiving other messages as well. But after a while always the first event is "read" according to the app, but never posted to the API. The next one works. It seems that the LINE webhook itself is sometimes a sleep. This makes it a unreliable.
Is your application behind the webhook awake all the time? If it goes sleep after a while, and wake up on the event, then it maybe timeout?