mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Bug]: Saved Media Progress showing double entries #2494
Open
opened 2026-04-25 00:07:44 +02:00 by adam
·
12 comments
No Branch/Tag Specified
master
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#2494
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @matieke on GitHub (Jan 16, 2025).
What happened?
When going through a user's Saved Media Progress there are double entries.

Users showing this issue are using Plappa 1.5.0
What did you expect to happen?
Saved Media Progress should only show 1 entry for each book.
Steps to reproduce the issue
Audiobookshelf version
2.17.7
How are you running audiobookshelf?
Docker
What OS is your Audiobookshelf server hosted from?
Linux
If the issue is being seen in the UI, what browsers are you seeing the problem on?
Chrome
Logs
No response
Additional Notes
@advplyr commented on GitHub (Jan 17, 2025):
Can you check the created timestamps for those to see if they are the same time? That would indicate a race condition
@matieke commented on GitHub (Jan 30, 2025):
I checked a couple where progress was at 0% but still had a duplicate entry.
"The eyes are the best part" audiobook for example has only 1 listening session logged of 36s.
Now even triple entries are being created also with only 1 listening session.
All occurrences of this bug present as 1 entry having the correct progress percentage while the duplicates stay at 0%
@advplyr commented on GitHub (Jan 30, 2025):
Can you check the created timestamps for those to see if they are the same time? That would indicate a race condition
@matieke commented on GitHub (Jan 30, 2025):
I'm not entirely sure what you mean, taking "The eyes are the best part" as an example. The user only has 1 timestamp in the listening history.
There are no duplicate timestamps, only duplicate entries in the saved media progress
@advplyr commented on GitHub (Jan 30, 2025):
@matieke commented on GitHub (Jan 30, 2025):
Yes, they all have the exact same timestamp.
@akriegshauser commented on GitHub (Feb 25, 2025):
My related issue #4038 does not duplicate media progress until the book is complete.
@argash commented on GitHub (Feb 26, 2025):
Just want to note that I am also seeing this behavior. I'm currently on 2.19.5 and the current version of Plappa. I will note it doesn't seem to happen every time though. Happy to help provide logs or anything else you might want me to test.
@akriegshauser commented on GitHub (Feb 27, 2025):
I have some more insight into this - I listen on both Plappa and through ABS on Chrome.
Today I started another book with my first listening session of it being on Plappa, and when I went to pick it up on ABS, I noticed a duplicate entry appear (this contradicts what I was previously reporting). I have since finished the book and it is now stuck in "Continue Listening" as well, showing a progress entry at 0% and one at 100%.
To test this theory, I have since started another book with my first listening session being on ABS via Chrome, and I currently do not see any duplicated events.
Below are all the logs generated relating to this book. Not sure if relevant as the logs may be related to playback, but I did not request Plappa download the book files to my device. These coincide with when I was listening to the book via Plappa, and no entries show for my ABS listening in the afternoon.
@nichwall commented on GitHub (Feb 27, 2025):
The aborted downloads seems to be related to Plappa, as reported in https://github.com/advplyr/audiobookshelf/issues/3803
@Vito0912 commented on GitHub (Apr 12, 2025):
I came across this issue, because of Discord.
I don't know if it is related (and I did not check every related issue, so sorry if this has been brought up), but after I checked https://github.com/advplyr/audiobookshelf/issues/4196, I noticed Plappa uses an unconventional method for syncing progress:
https://github.com/advplyr/audiobookshelf/issues/4196#issuecomment-2797497694
Specifically, instead of syncing
/sync, the following endpoints are used:/api/session/local/api/me/progress/batch/update/api/authorizeThe first two endpoints is used to sync the session. I can imagine there is a race condition that creates double entries since both requests are executed at the same time.
Additionally, the third endpoint is also executed every sync (approximately every 10 seconds), loading all media data each time. This might also create a race condition (bc loading while updating (?)). I am actually surprised that nobody has complained about data usage for Plappa, as the user endpoint gets quite large very quickly (at least I found no issue).
However, I can imagine that all of this creates some race condition or similar issue. The developer said he will refine the API endpoints eventually (no ETA) but still we should investigate further.
@Vito0912 commented on GitHub (Jun 19, 2025):
I found the cause.
It is indeed a race condition that happens when
/api/session/localand/api/me/progress/batch/updateare used at the same time, because both create a new progress.I cannot say if or when this will be fixed on the ABS site. Unfortunately, I do not know enough about the backend (regarding the model schema / SQL lite) right now to fix this myself.
But at least I can tell how to avoid it :): To avoid this problem for now, start the book using another app or the web, wait for the first sync (for the official apps, this should take about 20 seconds), and then listen with Plappa. The issue should only occur if there is no progress and you start the first progress with plappa
Tagging @LeoKlaus so you are informed.