ABS+ saves your Audiobookshelf listening position on the phone first and sends it to your server afterwards, so a chapter you listened to in a tunnel or on a plane is not lost and does not overwrite what you heard on another device in the meantime. Each play, pause and finish is written to storage before any network request is made, the server is asked what it already has before the app writes anything, and a failed send is retried with a delay that grows from one second to five minutes and survives the app being killed. This post walks through how that works in the code as it stands in the repository on November 9, 2026 (the sync files are unchanged since the 1.2.4 release of October 28), and why each rule exists.
Why syncing a listening position is harder than it looks
Audiobookshelf stores one progress record per book, and per podcast episode, on your server. The record holds the current time, the duration, a finished flag and a lastUpdate timestamp.β¦