mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Bug]: Create/Update Media Progress does not update personalized rows #1460
Closed
opened 2026-04-24 23:46:24 +02:00 by adam
·
13 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
No Label
bug
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#1460
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 @rasmuslos on GitHub (Oct 13, 2023).
Describe the issue
Sending progress updates to the Create/Update Media Progress endpoint causes items to stay in "continue listening", even though they are completed. Marking them as unfinished / finished does not resolve the issue
Steps to reproduce the issue
Audiobookshelf version
v2.4.4
How are you running audiobookshelf?
Docker
@rasmuslos commented on GitHub (Oct 13, 2023):
It seems like the endpoint creates a second media progress
@advplyr commented on GitHub (Oct 14, 2023):
I'm not able to reproduce this. This worked well:
99604f53-2850-42d5-8274-3c6dcdfcef72is the library item id57470d09-4009-4785-954a-3b12fe55163eis the podcast episode id@rasmuslos commented on GitHub (Oct 15, 2023):
I have been able to reproduce it multiple times on the latest version. The problem only occurs when you update progress using both the create/update media progress and the regular
api/session/<ID>/syncone. Both create their own media progress entity. Updating progress by only using one or the other is fine@advplyr commented on GitHub (Oct 15, 2023):
Can you give me sample payloads and a step by step so I can reproduce it?
@rasmuslos commented on GitHub (Oct 15, 2023):
Ok, so I managed to replicate it, but only on my main server, not one I setup just to test this. Maybe this is related to the database migration?
If progress is only reported using the session endpoint or the create update media endpoint everything works fine
Managed to replicate on main server:
POSTapi/items/f756025e-f463-4a5b-952c-3de365e8d6a6/play/d2637f9e-0b47-44a2-b35c-3f3ff57e26b7POSTapi/session/b20ee258-7dfd-4f75-be2b-64cbd50e39e5/syncPATCHapi/me/progress/f756025e-f463-4a5b-952c-3de365e8d6a6/d2637f9e-0b47-44a2-b35c-3f3ff57e26b7f756025e-f463-4a5b-952c-3de365e8d6a6is the podcast idd2637f9e-0b47-44a2-b35c-3f3ff57e26b7is the episode idb20ee258-7dfd-4f75-be2b-64cbd50e39e5is the the session id4 Treffertranslates to 4 matchesNot working on my development server:
POSTapi/items/a4352c2a-3163-4609-b047-8b2773e29e6b/play/88562dab-c0ed-45f7-a664-cdfb0bb81497POSTapi/session/e15a0745-8289-4dc9-91b3-50e4955c2438/syncPATCHapi/me/progress/a4352c2a-3163-4609-b047-8b2773e29e6b/88562dab-c0ed-45f7-a664-cdfb0bb81497a4352c2a-3163-4609-b047-8b2773e29e6bis the podcast id88562dab-c0ed-45f7-a664-cdfb0bb81497is the episode ide15a0745-8289-4dc9-91b3-50e4955c2438is the the session idHere only two matches are found
@advplyr commented on GitHub (Oct 15, 2023):
I can't think of any reason why this would happen
This is where media progress is created/updated from session syncs: https://github.com/advplyr/audiobookshelf/blob/cdd740015c2daa08e870090f35a8e42a28c55042/server/managers/PlaybackSessionManager.js#L283
This is where media progress is created/updated from the
api/me/progress/api endpoint: https://github.com/advplyr/audiobookshelf/blob/cdd740015c2daa08e870090f35a8e42a28c55042/server/controllers/MeController.js#L87@rasmuslos commented on GitHub (Oct 15, 2023):
So I have create a backup of my server and restored it and I think the problem is now resolved... This makes no sense.
I would suggest closing the issue as this is apparently not reproducibly and has no clear cause... If it happens again I can open it again and look into it further
@rasmuslos commented on GitHub (Apr 5, 2024):
So apparently this happened again to @tehguitarist while he was using ShelfPlayer. He also has a library that was migrated to the new database system, so my guess is that this is a prerequisite. I looked at the code again and found that ShelfPlayer includes the property
isFinishedin theapi/me/progressrequest, while the session endpoint does not. Could this be the cause?@advplyr commented on GitHub (Apr 5, 2024):
I don't think so, is it with a specific book or episode? There is a known issue on an older version of Abs where 2 copies of media progress are in the database. That can be tested by deleting the progress on the web client using the small x button.
There is also cache on the server side, that should be cleared automatically but I need more info to look into it.
@rasmuslos commented on GitHub (Apr 5, 2024):
Apparently the issue can be resoled by reseting the progress using the app or web client, but it seems like this happens with all items. I don't know specific details, so take this with a grain of salt.
The solution right now is that ShelfPlayer has a opt in feature that checks for multiple progress entities for the same item and deletes the oldest ones.
@advplyr commented on GitHub (Apr 5, 2024):
If that is the same bug it was with a server version maybe 9 months ago that would only impact a very small number of users. It's so minor that I didn't write an extra script to check for this on server start, I just asked those few users to discard the progress for that item.
It may not be the same issue though if it is impacting many items for many users because this was very specific.
@tehguitarist commented on GitHub (Apr 6, 2024):
Hey, I'm trying to get this to reliably replicate. Here are some of the details of the most recent book it happened to:
My initial server version was around the v2.1 mark, possibly 2.0?
Book was added to the library about the 31st of October - I keep ABS up to date within a week or so of updates, so this would have been v2.5 or v2.6
I was listening to the book nearly exclusively in a downloaded state using ShelfPlayer. This was a combination of online, offline, and listening sessions where I would be offline, but listening across days.
This initial listening session only started a few weeks ago, so the book was unplayed until then.
Doing a quick test where I skipped to the end of a book (streaming, not downloaded) did not cause the issue to pop up again.
I'm currently a few hours until the end of a book I'm listening to in a similar manner so will try and see if it happens again.
@rasmuslos commented on GitHub (Apr 23, 2024):
It started happening again...
I will look into it, maybe I will find the cause this time