text:
Plex is not updating its watch progress despite successful watch progress update

Describe the bug
Have setup Emby and Plex backends with the primary purpose of syncing watch progress via webhooks. For the purpose of testing, I am doing manual sync. If watching a movie in Plex, then it will sync progress to Emby just fine - this works consistently and reliably. It does not work the other way around, Plex will not update its watch progress after viewing a movie in Emby.
After watching a movie in Emby and stopping playback, I can see the update is queued:
2024-04-26T10:07:23.596790203Z [2024-04-26T20:07:23.596460+10:00] http.INFO: Queued [emby] movie [I See You (2019)]. [] []
2024-04-26T10:07:23.597496693Z INF | ts=1714126043.597315 logger=http.log.access msg=handled request request={"remote_ip":"192.168.0.196","remote_port":"38778","client_ip":"192.168.0.196","proto":"HTTP/1.1","method":"POST","host":"192.168.0.179:8076","uri":"/?apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxx","headers":{"User-Agent":["Emby Server/4.8.5.0"],"Accept-Encoding":["deflate"],"Traceparent":["00-86b684d41fe9d36abc5a30ed4257b155-456df76a2069aaf2-00"],"Content-Type":["multipart/form-data; boundary=\"42dcdfb1-16f7-4145-87ac-d976ef28d205\""],"Content-Length":["2859"]}} bytes_read=2859 user_id= duration=0.00872294 size=0 status=200 resp_headers={"Server":["Caddy"],"Content-Type":["application/json"],"X-Application-Version":["20240423-03e7c1e"],"X-Request-Id":["49d6a9b9-a096-4cff-844d-e7c2163c393d"]}

I then use the following command to do a manual progress sync
docker exec -it watchstate console state:progress -vvv --trace --context

Viewing the output below, I can see that it is successful in pushing the progress state to Plex, but in the Plex app I see no change to the watch progress.
[2024-04-26T20:07:36+10:00] INFO: Emby.Progress: Ignoring [I See You (2019)] for [Emby: emby]. Event generator. { (item: [ (id: 358), (type: movie) ]) }
[2024-04-26T20:07:36+10:00] NOTICE: SYSTEM: Sending [1] progress update requests. { (time: [ (start: "2024-04-26T20:07:36+10:00") ]) }
[2024-04-26T20:07:37+10:00] NOTICE: SYSTEM: Updated [plextv] [I See You (2019)] watch progress. { (item: [ (id: 358), (type: movie) ]), (remote: [ (id: 36305), (url: https://192-168-0-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.plex.direct:32400/:/timeline/?ratingKey=36305&key=%2Flibrary%2Fmetadata%2F36305&identifier=com.plexapp.plugins.library&state=stopped&time=3245869&duration=5862040&X-Plex-Client-Identifier=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) ]), (status_code: 200) }
[2024-04-26T20:07:37+10:00] NOTICE: SYSTEM: Sent [1] watch progress requests. { (time: [ (start: "2024-04-26T20:07:36+10:00"), (end: "2024-04-26T20:07:37+10:00"), (duration: 1) ]) }
[2024-04-26T20:07:37+10:00] NOTICE: Using WatchState Version - '20240423-03e7c1e'.

Then right after this, without any further action, Plex will queue an update itself - unsure of this behaviour and why it is happening.
2024-04-26T10:07:37.060202138Z [2024-04-26T20:07:37.059966+10:00] http.INFO: Queued [plextv] movie [I See You (2019)]. [] []
2024-04-26T10:07:37.062252438Z INF | ts=1714126057.0621612 logger=http.log.access msg=handled request request={"remote_ip":"192.168.0.193","remote_port":"40628","client_ip":"192.168.0.193","proto":"HTTP/1.1","method":"POST","host":"192.168.0.179:8076","uri":"/?apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","headers":{"User-Agent":["PlexMediaServer/1.40.2.8395-c67dce28e"],"Accept":["*/*"],"Accept-Encoding":["gzip"],"Content-Length":["7279"],"Content-Type":["multipart/form-data; boundary=------------------------9zvwhyV6v12loEgcsyjoaQ"]}} bytes_read=7279 user_id= duration=0.034613072 size=0 status=200 resp_headers={"Server":["Caddy"],"X-Application-Version":["20240423-03e7c1e"],"Content-Type":["application/json"],"X-Request-Id":["2542a78d-7d8a-4962-b352-b9440c246584"]}

Additional context
I am using Plex Server Version 1.40.2.8395 in a docker container and Emby Version 4.8.5.0 also in a docker container.

Hello,
I just tested it right now from emby > to plex, and it is working as intended on plex version 1.40.2.8395. I am going to need full debug logs, and also this info for the same item
$ docker exec -ti console backend:search:id -s plextv 36305 -o yaml --include-raw-response

when doing the state:progress use the --debug flag and include the relevant logs

Thanks for the quick response!! Ok, I have repeated same steps to reproduce the bug and here are the logs as requested. You'll notice there is a Jellyfin error in there as well, that can be ignored as I have a Jellyfin backend set up as well and am aware it is not currently working
root@lxc-dbn-docker:/mnt/eckoflyte/docker/homelab# docker exec -it watchstate console state:progress -vvv --trace --context --debug
[2024-04-26T20:30:31+10:00] DEBUG: Requesting [Plex: plextv] play sessions. { (url: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/status/sessions) }
[2024-04-26T20:30:31+10:00] DEBUG: HttpClient - Request [ GET: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/status/sessions] { (options: [ (headers: [ (Accept: application/json), (X-Plex-Token: **hidden**), (X-Plex-Container-Size: 0) ]), (user_data: [ (ok: callable), (error: callable) ]) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: Processing [Plex: plextv] plex.getSessions payload. { (trace: [ (MediaContainer: [ (size: 0) ]) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: Requesting [Plex: plextv] item [36305] metadata. { (url: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/library/metadata/36305?includeGuids=1) }
[2024-04-26T20:30:32+10:00] DEBUG: HttpClient - Request [ GET: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/library/metadata/36305?includeGuids=1] { (options: [ (headers: [ (Accept: application/json), (X-Plex-Token: **hidden**), (X-Plex-Container-Size: 0) ]), (user_data: [ (ok: callable), (error: callable) ]) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: Processing [Plex: plextv] item [36305] payload. { (cached: false), (trace: [ (MediaContainer: [ (size: 1), (allowSync: true), (identifier: com.plexapp.plugins.library), (librarySectionID: 6), (librarySectionTitle: Movies), (librarySectionUUID: 1d183162-0fda-460e-aa3b-4caa431c7b28), (mediaTagPrefix: /system/bundle/media/flags/), (mediaTagVersion: 1713446878), (Metadata: [ (0: [ (ratingKey: 36305), (key: /library/metadata/36305), (guid: plex://movie/5d77704ef617c9002019d010), (slug: i-see-you-2019-2), (studio: Zodiac Features), (type: movie), (title: I See You), (librarySectionTitle: Movies), (librarySectionID: 6), (librarySectionKey: /library/sections/6), (contentRating: R), (summary: A policeman and his doctor wife have some marriage problems and the son blames the mother. For his job, the policeman investigates a case of a missing boy. The possible kidnapping looks like some cases from a few years ago.), (audienceRating: 6.8), (viewOffset: 3245869), (lastViewedAt: 1714126056), (year: 2019), (tagline: Evil Hides In Plain Sight), (thumb: /library/metadata/36305/thumb/1714041691), (art: /library/metadata/36305/art/1714041691), (duration: 5862040), (originallyAvailableAt: 2019-12-10), (addedAt: 1713545311), (updatedAt: 1714041691), (audienceRatingImage: imdb://image.rating), (chapterSource: media), (primaryExtraKey: /library/metadata/36306), (Media: [ (0: [ (id: 80265), (duration: 5862040), (bitrate: 16668), (width: 1920), (height: 808), (aspectRatio: 2.35), (audioChannels: 6), (audioCodec: dca), (videoCodec: h264), (videoResolution: 1080), (container: mkv), (videoFrameRate: 24p), (audioProfile: dts), (videoProfile: high), (Part: [ (0: [ (id: 99037), (key: /library/parts/99037/1713545294/file.mkv), (duration: 5862040), (file: /data/media/drivepool/Videos/Movies/I See You (2019)/I See You (2019) [Bluray-1080p.DTS.5.1.x264-TDD].mkv), (size: 12216264320), (audioProfile: dts), (container: mkv), (indexes: sd), (videoProfile: high), (Stream: [ (0: [ (id: 436884), (streamType: 1), (default: true), (codec: h264), (index: 0), (bitrate: 15074), (language: English), (languageTag: en), (languageCode: eng), (bitDepth: 8), (chromaLocation: left), (chromaSubsampling: 4:2:0), (codedHeight: 816), (codedWidth: 1920), (frameRate: 23.976), (hasScalingMatrix: false), (height: 808), (level: 41), (profile: high), (refFrames: 5), (scanType: progressive), (title: x264 / 15075 kbps / 1080p / 23.976 fps / 2.40:1 / High Profile 4.1), (width: 1920), (displayTitle: 1080p (H.264)), (extendedDisplayTitle: x264 / 15075 kbps / 1080p / 23.976 fps / 2.40:1 / High Profile 4.1 (H.264)) ]), (1: [ (id: 436885), (streamType: 2), (selected: true), (default: true), (codec: dca), (index: 1), (channels: 6), (bitrate: 1509), (language: English), (languageTag: en), (languageCode: eng), (audioChannelLayout: 5.1(side)), (bitDepth: 24), (profile: dts), (samplingRate: 48000), (title: DTS / 5.1 / 48 kHz / 1509 kbps / 24-bit), (displayTitle: English (DTS 5.1)), (extendedDisplayTitle: DTS / 5.1 / 48 kHz / 1509 kbps / 24-bit (English)) ]), (2: [ (id: 436886), (streamType: 2), (codec: opus), (index: 2), (channels: 2), (bitrate: 85), (language: English), (languageTag: en), (languageCode: eng), (audioChannelLayout: stereo), (samplingRate: 48000), (title: Commentary by director Adam Randall and producer Matt Waldeck / Opus / 2.0 / 48 kHz / 85 kbps), (displayTitle: English (OPUS Stereo)), (extendedDisplayTitle: Commentary by director Adam Randall and producer Matt Waldeck / Opus / 2.0 / 48 kHz / 85 kbps (English)) ]), (3: [ (id: 436887), (streamType: 3), (selected: true), (codec: srt), (index: 3), (bitrate: 0), (language: English), (languageTag: en), (languageCode: eng), (displayTitle: English (SRT)), (extendedDisplayTitle: English (SRT)) ]), (4: [ (id: 436888), (streamType: 3), (codec: srt), (index: 4), (bitrate: 0), (language: English), (languageTag: en), (languageCode: eng), (title: SDH), (displayTitle: English (SRT)), (extendedDisplayTitle: SDH (English SRT)) ]) ]) ]) ]) ]) ]), (Genre: [ (0: [ (id: 602), (filter: genre=602), (tag: Horror) ]), (1: [ (id: 322), (filter: genre=322), (tag: Thriller) ]), (2: [ (id: 58), (filter: genre=58), (tag: Drama) ]), (3: [ (id: 27), (filter: genre=27), (tag: Mystery) ]), (4: [ (id: 167), (filter: genre=167), (tag: Crime) ]) ]), (Country: [ (0: [ (id: 40973), (filter: country=40973), (tag: United States of America) ]) ]), (Guid: [ (0: [ (id: imdb://tt6079516) ]), (1: [ (id: tmdb://524251) ]), (2: [ (id: tvdb://19799) ]) ]), (Rating: [ (0: [ (image: imdb://image.rating), (value: 6.8), (type: audience) ]), (1: [ (image: rottentomatoes://image.rating.ripe), (value: 7.5), (type: critic) ]), (2: [ (image: rottentomatoes://image.rating.upright), (value: 7.4), (type: audience) ]), (3: [ (image: themoviedb://image.rating), (value: 7), (type: audience) ]) ]), (Director: [ (0: [ (id: 126974), (filter: director=126974), (tag: Adam Randall), (tagKey: 5d776b5e594b2b001e6d7e1b) ]) ]), (Writer: [ (0: [ (id: 126975), (filter: writer=126975), (tag: Devon Graye), (tagKey: 5d776843103a2d001f56b201), (thumb: https://metadata-static.plex.tv/people/5d776843103a2d001f56b201.jpg) ]) ]), (Role: [ (0: [ (id: 98070), (filter: actor=98070), (tag: Helen Hunt), (tagKey: 5d776827961905001eb9146f), (role: Jackie Harper), (thumb: https://metadata-static.plex.tv/c/people/ce617f9d52a29c492fec8e6bcf2b76b2.jpg) ]), (1: [ (id: 121664), (filter: actor=121664), (tag: Jon Tenney), (tagKey: 5d7768253c3c2a001fbcacdc), (role: Greg Harper), (thumb: https://metadata-static.plex.tv/people/5d7768253c3c2a001fbcacdc.jpg) ]), (2: [ (id: 73223), (filter: actor=73223), (tag: Owen Teague), (tagKey: 5d7769a7ad5437001f763a0e), (role: Alec Travers), (thumb: https://metadata-static.plex.tv/1/people/1c73859136a508edd819e0cd19a09c48.jpg) ]), (3: [ (id: 126976), (filter: actor=126976), (tag: Judah Lewis), (tagKey: 5d776aa87a53e9001e70b999), (role: Connor Harper), (thumb: https://metadata-static.plex.tv/4/people/49f9270374fc7a2bca1f954f084a3813.jpg) ]), (4: [ (id: 126977), (filter: actor=126977), (tag: Libe Barer), (tagKey: 5d776de196b655001fe55b09), (role: Mindy), (thumb: https://metadata-static.plex.tv/2/people/2467c588ecc09a30f21e1f7a848e80a3.jpg) ]), (5: [ (id: 71731), (filter: actor=71731), (tag: Gregory Alan Williams), (tagKey: 5d77682e85719b001f3a240e), (role: Detective Spitzky), (thumb: https://metadata-static.plex.tv/people/5d77682e85719b001f3a240e.jpg) ]), (6: [ (id: 122650), (filter: actor=122650), (tag: Erika Alexander), (tagKey: 5d7768317e9a3c0020c6bfa8), (role: Lieutenant Davis), (thumb: https://metadata-static.plex.tv/c/people/c08bc1e33a9a67ec28d430e321b50905.jpg) ]), (7: [ (id: 126978), (filter: actor=126978), (tag: Sam Trammell), (tagKey: 5d77682685719b001f3a0b02), (role: Todd), (thumb: https://metadata-static.plex.tv/6/people/6856dcbb34108f348d1e53471382dbb0.jpg) ]), (8: [ (id: 126979), (filter: actor=126979), (tag: Jeremy Gladen), (tagKey: 5d77685c594b2b001e689a8c), (role: Tommy Braun), (thumb: https://metadata-static.plex.tv/1/people/1d436f49cce7e77e2caf25841f10a2fa.jpg) ]), (9: [ (id: 126980), (filter: actor=126980), (tag: Allison King), (tagKey: 5d776a8af617c9002016e427), (role: Officer Grace Caleb), (thumb: https://metadata-static.plex.tv/people/5d776a8af617c9002016e427.jpg) ]), (10: [ (id: 126981), (filter: actor=126981), (tag: Adam Kern), (tagKey: 6324c4f931a6256f7eb882a8), (role: Window Repairman), (thumb: https://metadata-static.plex.tv/6/people/6ec6ccde18389fbb7e69399d748d3594.jpg) ]), (11: [ (id: 126982), (filter: actor=126982), (tag: Riley Caya), (tagKey: 63209324a7b41d1991bc372c), (role: Justin Whitter) ]), (12: [ (id: 126983), (filter: actor=126983), (tag: Nicole Forester), (tagKey: 5d77688b7a53e9001e6d234c), (role: Mrs. Whitter), (thumb: https://metadata-static.plex.tv/people/5d77688b7a53e9001e6d234c.jpg) ]), (13: [ (id: 126984), (filter: actor=126984), (tag: John Newberg), (tagKey: 5d776839999c64001ec30241), (role: Mr. Braun), (thumb: https://metadata-static.plex.tv/people/5d776839999c64001ec30241.jpg) ]), (14: [ (id: 126985), (filter: actor=126985), (tag: Teri Clark), (tagKey: 5d77687b0ea56a001e2a610b), (role: Mrs. Braun), (thumb: https://metadata-static.plex.tv/people/5d77687b0ea56a001e2a610b.jpg) ]), (15: [ (id: 126986), (filter: actor=126986), (tag: Wyatt McClure), (tagKey: 5d776cc151dd69001fe3ee1a), (role: Young Tommy Braun), (thumb: https://metadata-static.plex.tv/4/people/47b46686afa4822cdd14771d09d425ba.jpg) ]), (16: [ (id: 126987), (filter: actor=126987), (tag: Brooks Roseberry), (tagKey: 5d776d8151dd69001fe43316), (role: Young Alec Travers) ]), (17: [ (id: 126988), (filter: actor=126988), (tag: Cherie McClain), (tagKey: 5d776b1196b655001fe02d47), (role: Newscaster) ]), (18: [ (id: 126989), (filter: actor=126989), (tag: A.J. Ransom), (tagKey: 5d77704ef617c9002019d043), (role: Michael King) ]), (19: [ (id: 126990), (filter: actor=126990), (tag: Thomas W. Wolf), (tagKey: 6325d86c31a6256f7eca4df1), (role: Fly Fisherman) ]), (20: [ (id: 69467), (filter: actor=69467), (tag: Mark Salas), (tagKey: 5d776b9923d5a3001f51236b), (role: Detective) ]), (21: [ (id: 126991), (filter: actor=126991), (tag: Daniel Repas), (tagKey: 60c77f0e84062c002c759e7f), (role: Police Officer Valmont) ]), (22: [ (id: 126992), (filter: actor=126992), (tag: Jennifer Grace), (tagKey: 5d7769d023d5a3001f4fca69), (role: Lydia) ]), (23: [ (id: 69425), (filter: actor=69425), (tag: Joe Fishel), (tagKey: 5d77684661141d001fb178b8), (role: Police Officer), (thumb: https://metadata-static.plex.tv/people/5d77684661141d001fb178b8.jpg) ]), (24: [ (id: 126993), (filter: actor=126993), (tag: Brian "Wolfman Black" Bowman), (tagKey: 6324aff4bf6a7448edb77ed0), (role: Police Officer), (thumb: https://metadata-static.plex.tv/d/people/d3f180262393d964641db446407e45f8.jpg) ]) ]), (Producer: [ (0: [ (id: 126994), (filter: producer=126994), (tag: Matt Waldeck), (tagKey: 63209326c44cd8a37115854c) ]) ]), (Field: [ (0: [ (locked: true), (name: thumb) ]), (1: [ (locked: true), (name: label) ]) ]) ]) ]) ]) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: Updating [plextv] movie [I See You (2019)] watch progress. { (item: [ (id: 358) ]), (remote: [ (id: 36305), (url: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/:/timeline/?ratingKey=36305&key=%2Flibrary%2Fmetadata%2F36305&identifier=com.plexapp.plugins.library&state=stopped&time=4470787&duration=5862040&X-Plex-Client-Identifier=a482e0bcb30205b6eb3ce97fcd5defd3) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: HttpClient - Request [ POST: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/:/timeline/?ratingKey=36305&key=%2Flibrary%2Fmetadata%2F36305&identifier=com.plexapp.plugins.library&state=stopped&time=4470787&duration=5862040&X-Plex-Client-Identifier=a482e0bcb30205b6eb3ce97fcd5defd3] { (options: [ (headers: [ (Accept: application/json), (X-Plex-Token: **hidden**), (X-Plex-Container-Size: 0) ]), (user_data: [ (id: 358), (context: [ (item: [ (id: 358), (type: movie), (title: I See You (2019)) ]), (remote: [ (id: 36305), (url: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/:/timeline/?ratingKey=36305&key=%2Flibrary%2Fmetadata%2F36305&identifier=com.plexapp.plugins.library&state=stopped&time=4470787&duration=5862040&X-Plex-Client-Identifier=a482e0bcb30205b6eb3ce97fcd5defd3) ]), (backend: plextv) ]), (ok: callable), (error: callable) ]) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: Requesting [Jellyfin: jellyfin] info. { (url: http://192.168.0.200:8096/system/Info) }
[2024-04-26T20:30:32+10:00] DEBUG: HttpClient - Request [ GET: http://192.168.0.200:8096/system/Info] { (options: [ (headers: [ (Accept: application/json), (Authorization: **hidden**) ]), (user_data: [ (ok: callable), (error: callable) ]) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: Processing [Jellyfin: jellyfin] jellyfin.getInfo payload. { (trace: [ (OperatingSystemDisplayName: Linux), (HasPendingRestart: false), (IsShuttingDown: false), (SupportsLibraryMonitor: true), (WebSocketPortNumber: 8096), (CompletedInstallations: [  ]), (CanSelfRestart: false), (CanLaunchWebBrowser: false), (ProgramDataPath: /config), (WebPath: /jellyfin/jellyfin-web), (ItemsByNamePath: /config/metadata), (CachePath: /cache), (LogPath: /config/log), (InternalMetadataPath: /config/metadata), (TranscodingTempPath: /config/transcodes), (HasUpdateAvailable: false), (EncoderLocation: NotFound), (SystemArchitecture: X64), (LocalAddress: http://192.168.0.200:8096), (ServerName: f9905f6d7cd2), (Version: 10.8.13), (OperatingSystem: Linux), (Id: aa23727c5b1e47ac9e6c1d845687221c) ]) }
[2024-04-26T20:30:32+10:00] NOTICE: SYSTEM: Sync play progress is not supported for [jellyfin]. Error [Jellyfin play progress support works on Jellyfin version 10.9.x and above. You are currently running 10.8.13. @ /src/Backends/Jellyfin/JellyfinClient.php:608]. { (error: [ (kind: App\Libs\Exceptions\Backends\UnexpectedVersionException) ]), (exception: [ (file: /opt/app/src/Backends/Jellyfin/JellyfinClient.php), (line: 608), (kind: App\Libs\Exceptions\Backends\UnexpectedVersionException), (message: Jellyfin play progress support works on Jellyfin version 10.9.x and above. You are currently running 10.8.13.), (trace: [ (0: [ (file: /opt/app/src/Backends/Jellyfin/JellyfinClient.php), (line: 342), (function: throwError), (class: App\Backends\Jellyfin\JellyfinClient), (type: ->) ]), (1: [ (file: /opt/app/src/Commands/State/ProgressCommand.php), (line: 218), (function: progress), (class: App\Backends\Jellyfin\JellyfinClient), (type: ->) ]), (2: [ (file: /opt/app/src/Commands/State/ProgressCommand.php), (line: 103), (function: process), (class: App\Commands\State\ProgressCommand), (type: ->) ]), (3: [ (file: /opt/app/src/Command.php), (line: 148), (function: App\Commands\State\{closure}), (class: App\Commands\State\ProgressCommand), (type: ->) ]), (4: [ (file: /opt/app/src/Commands/State/ProgressCommand.php), (line: 103), (function: single), (class: App\Command), (type: ->) ]), (5: [ (file: /opt/app/src/Command.php), (line: 75), (function: runCommand), (class: App\Commands\State\ProgressCommand), (type: ->) ]), (6: [ (file: /opt/app/vendor/symfony/console/Command/Command.php), (line: 326), (function: execute), (class: App\Command), (type: ->) ]), (7: [ (file: /opt/app/vendor/symfony/console/Application.php), (line: 1078), (function: run), (class: Symfony\Component\Console\Command\Command), (type: ->) ]), (8: [ (file: /opt/app/vendor/symfony/console/Application.php), (line: 324), (function: doRunCommand), (class: Symfony\Component\Console\Application), (type: ->) ]), (9: [ (file: /opt/app/vendor/symfony/console/Application.php), (line: 175), (function: doRun), (class: Symfony\Component\Console\Application), (type: ->) ]), (10: [ (file: /opt/app/src/Libs/Initializer.php), (line: 174), (function: run), (class: Symfony\Component\Console\Application), (type: ->) ]), (11: [ (file: /opt/app/bin/console), (line: 69), (function: console), (class: App\Libs\Initializer), (type: ->) ]) ]) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: Requesting [Emby: emby] play sessions. { (url: http://192.168.0.196:8096/Sessions) }
[2024-04-26T20:30:32+10:00] DEBUG: HttpClient - Request [ GET: http://192.168.0.196:8096/Sessions] { (options: [ (headers: [ (Accept: application/json), (Authorization: **hidden**) ]), (user_data: [ (ok: callable), (error: callable) ]) ]) }
[2024-04-26T20:30:32+10:00] DEBUG: Processing [Emby: emby] emby.getSessions payload. { (trace: [ (0: [ (PlayState: [ (CanSeek: false), (IsPaused: false), (IsMuted: false), (RepeatMode: RepeatNone), (SubtitleOffset: 0), (PlaybackRate: 1) ]), (AdditionalUsers: [  ]), (RemoteEndPoint: 192.168.0.224), (Protocol: HTTP/1.1), (PlayableMediaTypes: [  ]), (PlaylistIndex: 0), (PlaylistLength: 0), (Id: c7f8625c6442e71d4d9347be8504f134), (ServerId: e7a9589f2b624d9eb1eca1bf022089bf), (Client: WatchState/Emby), (LastActivityDate: 2024-04-26T10:30:32.4458401Z), (DeviceName: Linux), (InternalDeviceId: 9), (DeviceId: abe5f2201a79992ab65cce161594f6d7), (ApplicationVersion: 20240423-03e7c1e), (SupportedCommands: [  ]), (SupportsRemoteControl: false) ]), (1: [ (PlayState: [ (CanSeek: false), (IsPaused: false), (IsMuted: false), (RepeatMode: RepeatNone), (SubtitleOffset: 0), (PlaybackRate: 1) ]), (AdditionalUsers: [  ]), (RemoteEndPoint: 192.168.0.1), (Protocol: HTTP/1.1), (PlayableMediaTypes: [ (0: Audio), (1: Video) ]), (PlaylistIndex: 0), (PlaylistLength: 1), (Id: f5043cf201ccb7079749af500295090b), (ServerId: e7a9589f2b624d9eb1eca1bf022089bf), (UserId: 6dc9a5d5a15b49bb87c7f318946a728b), (UserName: eckoflyte), (Client: Emby Web), (LastActivityDate: 2024-04-26T10:30:01.7386821Z), (DeviceName: Chrome Windows), (InternalDeviceId: 2), (DeviceId: e95fcd11-8672-4ad6-8950-66d38abc4037), (ApplicationVersion: 4.8.5.0), (AppIconUrl: https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/chrome.png), (SupportedCommands: [ (0: MoveUp), (1: MoveDown), (2: MoveLeft), (3: MoveRight), (4: PageUp), (5: PageDown), (6: PreviousLetter), (7: NextLetter), (8: ToggleOsd), (9: ToggleContextMenu), (10: Select), (11: Back), (12: SendKey), (13: SendString), (14: GoHome), (15: GoToSettings), (16: VolumeUp), (17: VolumeDown), (18: Mute), (19: Unmute), (20: ToggleMute), (21: SetVolume), (22: SetAudioStreamIndex), (23: SetSubtitleStreamIndex), (24: RefreshMediaSource), (25: DisplayContent), (26: GoToSearch), (27: DisplayMessage), (28: SetRepeatMode), (29: SetSubtitleOffset), (30: SetPlaybackRate), (31: ChannelUp), (32: ChannelDown), (33: PlayMediaSource), (34: PlayTrailers) ]), (SupportsRemoteControl: true) ]), (2: [ (PlayState: [ (CanSeek: false), (IsPaused: false), (IsMuted: false), (RepeatMode: RepeatNone), (SubtitleOffset: 0), (PlaybackRate: 1) ]), (AdditionalUsers: [  ]), (RemoteEndPoint: 192.168.0.100), (PlayableMediaTypes: [ (0: Audio), (1: Video), (2: Photo) ]), (PlaylistIndex: 0), (PlaylistLength: 0), (Id: dbd66825a6fe46d1b16c698f22600180), (ServerId: e7a9589f2b624d9eb1eca1bf022089bf), (Client: Emby Server DLNA), (LastActivityDate: 2024-04-25T13:18:39.8897258Z), (DeviceName: Denon AVC-X3700H), (InternalDeviceId: 0), (DeviceId: uuid:ca43e2cc-9e24-1467-0080-00067850e212), (ApplicationVersion: 4.8.5.0), (SupportedCommands: [ (0: VolumeDown), (1: VolumeUp), (2: Mute), (3: Unmute), (4: ToggleMute), (5: SetVolume), (6: SetAudioStreamIndex), (7: SetSubtitleStreamIndex), (8: PlayMediaSource) ]), (SupportsRemoteControl: true) ]) ]) }
[2024-04-26T20:30:32+10:00] INFO: Emby.Progress: Ignoring [I See You (2019)] for [Emby: emby]. Event generator. { (item: [ (id: 358), (type: movie) ]) }
[2024-04-26T20:30:32+10:00] NOTICE: SYSTEM: Sending [1] progress update requests. { (time: [ (start: "2024-04-26T20:30:32+10:00") ]) }
[2024-04-26T20:30:32+10:00] NOTICE: SYSTEM: Updated [plextv] [I See You (2019)] watch progress. { (item: [ (id: 358), (type: movie) ]), (remote: [ (id: 36305), (url: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/:/timeline/?ratingKey=36305&key=%2Flibrary%2Fmetadata%2F36305&identifier=com.plexapp.plugins.library&state=stopped&time=4470787&duration=5862040&X-Plex-Client-Identifier=a482e0bcb30205b6eb3ce97fcd5defd3) ]), (status_code: 200) }
[2024-04-26T20:30:32+10:00] NOTICE: SYSTEM: Sent [1] watch progress requests. { (time: [ (start: "2024-04-26T20:30:32+10:00"), (end: "2024-04-26T20:30:32+10:00"), (duration: 0) ]) }
[2024-04-26T20:30:32+10:00] NOTICE: Using WatchState Version - '20240423-03e7c1e'.

root@lxc-dbn-docker:/mnt/eckoflyte/docker/homelab# docker exec -ti watchstate console backend:search:id -s plextv 36305 -o yaml --include-raw-response
id: 36305
type: Movie
library: Movies
title: 'I See You'
year: 2019
addedAt: '2024-04-20 02:48:31 AEST'
watchedAt: '2024-04-26 20:30:32 AEST'
duration: '01:37:42'
raw:
  MediaContainer:
    size: 1
    allowSync: true
    identifier: com.plexapp.plugins.library
    librarySectionID: 6
    librarySectionTitle: Movies
    librarySectionUUID: 1d183162-0fda-460e-aa3b-4caa431c7b28
    mediaTagPrefix: /system/bundle/media/flags/
    mediaTagVersion: 1713446878
    Metadata:
      -
        ratingKey: '36305'
        key: /library/metadata/36305
        guid: 'plex://movie/5d77704ef617c9002019d010'
        slug: i-see-you-2019-2
        studio: 'Zodiac Features'
        type: movie
        title: 'I See You'
        librarySectionTitle: Movies
        librarySectionID: 6
        librarySectionKey: /library/sections/6
        contentRating: R
        summary: 'A policeman and his doctor wife have some marriage problems and the son blames the mother. For his job, the policeman investigates a case of a missing boy. The possible kidnapping looks like some cases from a few years ago.'
        audienceRating: 6.8
        viewOffset: 4470787
        lastViewedAt: 1714127432
        year: 2019
        tagline: 'Evil Hides In Plain Sight'
        thumb: /library/metadata/36305/thumb/1714041691
        art: /library/metadata/36305/art/1714041691
        duration: 5862040
        originallyAvailableAt: '2019-12-10'
        addedAt: 1713545311
        updatedAt: 1714041691
        audienceRatingImage: 'imdb://image.rating'
        chapterSource: media
        primaryExtraKey: /library/metadata/36306
        Media:
          -
            id: 80265
            duration: 5862040
            bitrate: 16668
            width: 1920
            height: 808
            aspectRatio: 2.35
            audioChannels: 6
            audioCodec: dca
            videoCodec: h264
            videoResolution: '1080'
            container: mkv
            videoFrameRate: 24p
            audioProfile: dts
            videoProfile: high
            Part:
              - { id: 99037, key: /library/parts/99037/1713545294/file.mkv, duration: 5862040, file: '/data/media/drivepool/Videos/Movies/I See You (2019)/I See You (2019) [Bluray-1080p.DTS.5.1.x264-TDD].mkv', size: 12216264320, audioProfile: dts, container: mkv, indexes: sd, videoProfile: high, Stream: [{ id: 436884, streamType: 1, default: true, codec: h264, index: 0, bitrate: 15074, language: English, languageTag: en, languageCode: eng, bitDepth: 8, chromaLocation: left, chromaSubsampling: '4:2:0', codedHeight: 816, codedWidth: 1920, frameRate: 23.976, hasScalingMatrix: false, height: 808, level: 41, profile: high, refFrames: 5, scanType: progressive, title: 'x264 / 15075 kbps / 1080p / 23.976 fps / 2.40:1 / High Profile 4.1', width: 1920, displayTitle: '1080p (H.264)', extendedDisplayTitle: 'x264 / 15075 kbps / 1080p / 23.976 fps / 2.40:1 / High Profile 4.1 (H.264)' }, { id: 436885, streamType: 2, selected: true, default: true, codec: dca, index: 1, channels: 6, bitrate: 1509, language: English, languageTag: en, languageCode: eng, audioChannelLayout: 5.1(side), bitDepth: 24, profile: dts, samplingRate: 48000, title: 'DTS / 5.1 / 48 kHz / 1509 kbps / 24-bit', displayTitle: 'English (DTS 5.1)', extendedDisplayTitle: 'DTS / 5.1 / 48 kHz / 1509 kbps / 24-bit (English)' }, { id: 436886, streamType: 2, codec: opus, index: 2, channels: 2, bitrate: 85, language: English, languageTag: en, languageCode: eng, audioChannelLayout: stereo, samplingRate: 48000, title: 'Commentary by director Adam Randall and producer Matt Waldeck / Opus / 2.0 / 48 kHz / 85 kbps', displayTitle: 'English (OPUS Stereo)', extendedDisplayTitle: 'Commentary by director Adam Randall and producer Matt Waldeck / Opus / 2.0 / 48 kHz / 85 kbps (English)' }, { id: 436887, streamType: 3, selected: true, codec: srt, index: 3, bitrate: 0, language: English, languageTag: en, languageCode: eng, displayTitle: 'English (SRT)', extendedDisplayTitle: 'English (SRT)' }, { id: 436888, streamType: 3, codec: srt, index: 4, bitrate: 0, language: English, languageTag: en, languageCode: eng, title: SDH, displayTitle: 'English (SRT)', extendedDisplayTitle: 'SDH (English SRT)' }] }
        Genre:
          -
            id: 602
            filter: genre=602
            tag: Horror
          -
            id: 322
            filter: genre=322
            tag: Thriller
          -
            id: 58
            filter: genre=58
            tag: Drama
          -
            id: 27
            filter: genre=27
            tag: Mystery
          -
            id: 167
            filter: genre=167
            tag: Crime
        Country:
          -
            id: 40973
            filter: country=40973
            tag: 'United States of America'
        Guid:
          -
            id: 'imdb://tt6079516'
          -
            id: 'tmdb://524251'
          -
            id: 'tvdb://19799'
        Rating:
          -
            image: 'imdb://image.rating'
            value: 6.8
            type: audience
          -
            image: 'rottentomatoes://image.rating.ripe'
            value: 7.5
            type: critic
          -
            image: 'rottentomatoes://image.rating.upright'
            value: 7.4
            type: audience
          -
            image: 'themoviedb://image.rating'
            value: 7.0
            type: audience
        Director:
          -
            id: 126974
            filter: director=126974
            tag: 'Adam Randall'
            tagKey: 5d776b5e594b2b001e6d7e1b
        Writer:
          -
            id: 126975
            filter: writer=126975
            tag: 'Devon Graye'
            tagKey: 5d776843103a2d001f56b201
            thumb: 'https://metadata-static.plex.tv/people/5d776843103a2d001f56b201.jpg'
        Role:
          -
            id: 98070
            filter: actor=98070
            tag: 'Helen Hunt'
            tagKey: 5d776827961905001eb9146f
            role: 'Jackie Harper'
            thumb: 'https://metadata-static.plex.tv/c/people/ce617f9d52a29c492fec8e6bcf2b76b2.jpg'
          -
            id: 121664
            filter: actor=121664
            tag: 'Jon Tenney'
            tagKey: 5d7768253c3c2a001fbcacdc
            role: 'Greg Harper'
            thumb: 'https://metadata-static.plex.tv/people/5d7768253c3c2a001fbcacdc.jpg'
          -
            id: 73223
            filter: actor=73223
            tag: 'Owen Teague'
            tagKey: 5d7769a7ad5437001f763a0e
            role: 'Alec Travers'
            thumb: 'https://metadata-static.plex.tv/1/people/1c73859136a508edd819e0cd19a09c48.jpg'
          -
            id: 126976
            filter: actor=126976
            tag: 'Judah Lewis'
            tagKey: 5d776aa87a53e9001e70b999
            role: 'Connor Harper'
            thumb: 'https://metadata-static.plex.tv/4/people/49f9270374fc7a2bca1f954f084a3813.jpg'
          -
            id: 126977
            filter: actor=126977
            tag: 'Libe Barer'
            tagKey: 5d776de196b655001fe55b09
            role: Mindy
            thumb: 'https://metadata-static.plex.tv/2/people/2467c588ecc09a30f21e1f7a848e80a3.jpg'
          -
            id: 71731
            filter: actor=71731
            tag: 'Gregory Alan Williams'
            tagKey: 5d77682e85719b001f3a240e
            role: 'Detective Spitzky'
            thumb: 'https://metadata-static.plex.tv/people/5d77682e85719b001f3a240e.jpg'
          -
            id: 122650
            filter: actor=122650
            tag: 'Erika Alexander'
            tagKey: 5d7768317e9a3c0020c6bfa8
            role: 'Lieutenant Davis'
            thumb: 'https://metadata-static.plex.tv/c/people/c08bc1e33a9a67ec28d430e321b50905.jpg'
          -
            id: 126978
            filter: actor=126978
            tag: 'Sam Trammell'
            tagKey: 5d77682685719b001f3a0b02
            role: Todd
            thumb: 'https://metadata-static.plex.tv/6/people/6856dcbb34108f348d1e53471382dbb0.jpg'
          -
            id: 126979
            filter: actor=126979
            tag: 'Jeremy Gladen'
            tagKey: 5d77685c594b2b001e689a8c
            role: 'Tommy Braun'
            thumb: 'https://metadata-static.plex.tv/1/people/1d436f49cce7e77e2caf25841f10a2fa.jpg'
          -
            id: 126980
            filter: actor=126980
            tag: 'Allison King'
            tagKey: 5d776a8af617c9002016e427
            role: 'Officer Grace Caleb'
            thumb: 'https://metadata-static.plex.tv/people/5d776a8af617c9002016e427.jpg'
          -
            id: 126981
            filter: actor=126981
            tag: 'Adam Kern'
            tagKey: 6324c4f931a6256f7eb882a8
            role: 'Window Repairman'
            thumb: 'https://metadata-static.plex.tv/6/people/6ec6ccde18389fbb7e69399d748d3594.jpg'
          -
            id: 126982
            filter: actor=126982
            tag: 'Riley Caya'
            tagKey: 63209324a7b41d1991bc372c
            role: 'Justin Whitter'
          -
            id: 126983
            filter: actor=126983
            tag: 'Nicole Forester'
            tagKey: 5d77688b7a53e9001e6d234c
            role: 'Mrs. Whitter'
            thumb: 'https://metadata-static.plex.tv/people/5d77688b7a53e9001e6d234c.jpg'
          -
            id: 126984
            filter: actor=126984
            tag: 'John Newberg'
            tagKey: 5d776839999c64001ec30241
            role: 'Mr. Braun'
            thumb: 'https://metadata-static.plex.tv/people/5d776839999c64001ec30241.jpg'
          -
            id: 126985
            filter: actor=126985
            tag: 'Teri Clark'
            tagKey: 5d77687b0ea56a001e2a610b
            role: 'Mrs. Braun'
            thumb: 'https://metadata-static.plex.tv/people/5d77687b0ea56a001e2a610b.jpg'
          -
            id: 126986
            filter: actor=126986
            tag: 'Wyatt McClure'
            tagKey: 5d776cc151dd69001fe3ee1a
            role: 'Young Tommy Braun'
            thumb: 'https://metadata-static.plex.tv/4/people/47b46686afa4822cdd14771d09d425ba.jpg'
          -
            id: 126987
            filter: actor=126987
            tag: 'Brooks Roseberry'
            tagKey: 5d776d8151dd69001fe43316
            role: 'Young Alec Travers'
          -
            id: 126988
            filter: actor=126988
            tag: 'Cherie McClain'
            tagKey: 5d776b1196b655001fe02d47
            role: Newscaster
          -
            id: 126989
            filter: actor=126989
            tag: 'A.J. Ransom'
            tagKey: 5d77704ef617c9002019d043
            role: 'Michael King'
          -
            id: 126990
            filter: actor=126990
            tag: 'Thomas W. Wolf'
            tagKey: 6325d86c31a6256f7eca4df1
            role: 'Fly Fisherman'
          -
            id: 69467
            filter: actor=69467
            tag: 'Mark Salas'
            tagKey: 5d776b9923d5a3001f51236b
            role: Detective
          -
            id: 126991
            filter: actor=126991
            tag: 'Daniel Repas'
            tagKey: 60c77f0e84062c002c759e7f
            role: 'Police Officer Valmont'
          -
            id: 126992
            filter: actor=126992
            tag: 'Jennifer Grace'
            tagKey: 5d7769d023d5a3001f4fca69
            role: Lydia
          -
            id: 69425
            filter: actor=69425
            tag: 'Joe Fishel'
            tagKey: 5d77684661141d001fb178b8
            role: 'Police Officer'
            thumb: 'https://metadata-static.plex.tv/people/5d77684661141d001fb178b8.jpg'
          -
            id: 126993
            filter: actor=126993
            tag: 'Brian "Wolfman Black" Bowman'
            tagKey: 6324aff4bf6a7448edb77ed0
            role: 'Police Officer'
            thumb: 'https://metadata-static.plex.tv/d/people/d3f180262393d964641db446407e45f8.jpg'
        Producer:
          -
            id: 126994
            filter: producer=126994
            tag: 'Matt Waldeck'
            tagKey: 63209326c44cd8a37115854c
        Field:
          -
            locked: true
            name: thumb
          -
            locked: true
            name: label

As you can see from the logs WS is correctly sending the watchtime [2024-04-26T20:30:32+10:00] DEBUG: Updating [plextv] movie [I See You (2019)] watch progress. { (item: [ (id: 358) ]), (remote: [ (id: 36305), (url: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/:/timeline/?ratingKey=36305&key=%2Flibrary%2Fmetadata%2F36305&identifier=com.plexapp.plugins.library&state=stopped&time=4470787&duration=5862040&X-Plex-Client-Identifier=a482e0bcb30205b6eb3ce97fcd5defd3) ]) }
But for some reason your plex installation is not working as expected, translating 4470787 which is what being sent to plex comes to 01:14:30 while plex reports the duration as 5862040 01:37:42

To add context, the entire movie length is 01:37:42. The watch progress in Plex before doing the test was 1:14:30. In Emby, playback was stopped at 11:04:xx (approximately) just before issuing the state progress update command.

Hmm... that's interesting i was not expecting that does the reverse also true? from plex to emby? if so, i may have to re-visit the emby code.

Just to show that syncing from Plex to Emby works. I stopped the movie at 13:40:00 in Plex then issued the update command. Emby correctly updated its watch progress, it works as expected.
root@lxc-dbn-docker:/mnt/eckoflyte/docker/homelab# docker exec -it watchstate console state:progress -vvv --trace --context --debug
[2024-04-26T21:01:36+10:00] DEBUG: Requesting [Plex: plextv] play sessions. { (url: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/status/sessions) }
[2024-04-26T21:01:36+10:00] DEBUG: HttpClient - Request [ GET: https://192-168-0-193.24590e5bd0a04a86b7aa994bdc15d565.plex.direct:32400/status/sessions] { (options: [ (headers: [ (Accept: application/json), (X-Plex-Token: **hidden**), (X-Plex-Container-Size: 0) ]), (user_data: [ (ok: callable), (error: callable) ]) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: Processing [Plex: plextv] plex.getSessions payload. { (trace: [ (MediaContainer: [ (size: 0) ]) ]) }
[2024-04-26T21:01:36+10:00] INFO: Ignoring [I See You (2019)] for [plextv]. Event originated from this backend. { (item: [ (id: 358), (type: movie) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: Requesting [Jellyfin: jellyfin] info. { (url: http://192.168.0.200:8096/system/Info) }
[2024-04-26T21:01:36+10:00] DEBUG: HttpClient - Request [ GET: http://192.168.0.200:8096/system/Info] { (options: [ (headers: [ (Accept: application/json), (Authorization: **hidden**) ]), (user_data: [ (ok: callable), (error: callable) ]) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: Processing [Jellyfin: jellyfin] jellyfin.getInfo payload. { (trace: [ (OperatingSystemDisplayName: Linux), (HasPendingRestart: false), (IsShuttingDown: false), (SupportsLibraryMonitor: true), (WebSocketPortNumber: 8096), (CompletedInstallations: [  ]), (CanSelfRestart: false), (CanLaunchWebBrowser: false), (ProgramDataPath: /config), (WebPath: /jellyfin/jellyfin-web), (ItemsByNamePath: /config/metadata), (CachePath: /cache), (LogPath: /config/log), (InternalMetadataPath: /config/metadata), (TranscodingTempPath: /config/transcodes), (HasUpdateAvailable: false), (EncoderLocation: NotFound), (SystemArchitecture: X64), (LocalAddress: http://192.168.0.200:8096), (ServerName: f9905f6d7cd2), (Version: 10.8.13), (OperatingSystem: Linux), (Id: aa23727c5b1e47ac9e6c1d845687221c) ]) }
[2024-04-26T21:01:36+10:00] NOTICE: SYSTEM: Sync play progress is not supported for [jellyfin]. Error [Jellyfin play progress support works on Jellyfin version 10.9.x and above. You are currently running 10.8.13. @ /src/Backends/Jellyfin/JellyfinClient.php:608]. { (error: [ (kind: App\Libs\Exceptions\Backends\UnexpectedVersionException) ]), (exception: [ (file: /opt/app/src/Backends/Jellyfin/JellyfinClient.php), (line: 608), (kind: App\Libs\Exceptions\Backends\UnexpectedVersionException), (message: Jellyfin play progress support works on Jellyfin version 10.9.x and above. You are currently running 10.8.13.), (trace: [ (0: [ (file: /opt/app/src/Backends/Jellyfin/JellyfinClient.php), (line: 342), (function: throwError), (class: App\Backends\Jellyfin\JellyfinClient), (type: ->) ]), (1: [ (file: /opt/app/src/Commands/State/ProgressCommand.php), (line: 218), (function: progress), (class: App\Backends\Jellyfin\JellyfinClient), (type: ->) ]), (2: [ (file: /opt/app/src/Commands/State/ProgressCommand.php), (line: 103), (function: process), (class: App\Commands\State\ProgressCommand), (type: ->) ]), (3: [ (file: /opt/app/src/Command.php), (line: 148), (function: App\Commands\State\{closure}), (class: App\Commands\State\ProgressCommand), (type: ->) ]), (4: [ (file: /opt/app/src/Commands/State/ProgressCommand.php), (line: 103), (function: single), (class: App\Command), (type: ->) ]), (5: [ (file: /opt/app/src/Command.php), (line: 75), (function: runCommand), (class: App\Commands\State\ProgressCommand), (type: ->) ]), (6: [ (file: /opt/app/vendor/symfony/console/Command/Command.php), (line: 326), (function: execute), (class: App\Command), (type: ->) ]), (7: [ (file: /opt/app/vendor/symfony/console/Application.php), (line: 1078), (function: run), (class: Symfony\Component\Console\Command\Command), (type: ->) ]), (8: [ (file: /opt/app/vendor/symfony/console/Application.php), (line: 324), (function: doRunCommand), (class: Symfony\Component\Console\Application), (type: ->) ]), (9: [ (file: /opt/app/vendor/symfony/console/Application.php), (line: 175), (function: doRun), (class: Symfony\Component\Console\Application), (type: ->) ]), (10: [ (file: /opt/app/src/Libs/Initializer.php), (line: 174), (function: run), (class: Symfony\Component\Console\Application), (type: ->) ]), (11: [ (file: /opt/app/bin/console), (line: 69), (function: console), (class: App\Libs\Initializer), (type: ->) ]) ]) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: Requesting [Emby: emby] play sessions. { (url: http://192.168.0.196:8096/Sessions) }
[2024-04-26T21:01:36+10:00] DEBUG: HttpClient - Request [ GET: http://192.168.0.196:8096/Sessions] { (options: [ (headers: [ (Accept: application/json), (Authorization: **hidden**) ]), (user_data: [ (ok: callable), (error: callable) ]) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: Processing [Emby: emby] emby.getSessions payload. { (trace: [ (0: [ (PlayState: [ (CanSeek: false), (IsPaused: false), (IsMuted: false), (RepeatMode: RepeatNone), (SubtitleOffset: 0), (PlaybackRate: 1) ]), (AdditionalUsers: [  ]), (RemoteEndPoint: 192.168.0.224), (Protocol: HTTP/1.1), (PlayableMediaTypes: [  ]), (PlaylistIndex: 0), (PlaylistLength: 0), (Id: c7f8625c6442e71d4d9347be8504f134), (ServerId: e7a9589f2b624d9eb1eca1bf022089bf), (Client: WatchState/Emby), (LastActivityDate: 2024-04-26T11:01:36.4372576Z), (DeviceName: Linux), (InternalDeviceId: 9), (DeviceId: abe5f2201a79992ab65cce161594f6d7), (ApplicationVersion: 20240423-03e7c1e), (SupportedCommands: [  ]), (SupportsRemoteControl: false) ]), (1: [ (PlayState: [ (CanSeek: false), (IsPaused: false), (IsMuted: false), (RepeatMode: RepeatNone), (SubtitleOffset: 0), (PlaybackRate: 1) ]), (AdditionalUsers: [  ]), (RemoteEndPoint: 192.168.0.1), (Protocol: HTTP/1.1), (PlayableMediaTypes: [ (0: Audio), (1: Video) ]), (PlaylistIndex: 0), (PlaylistLength: 1), (Id: f5043cf201ccb7079749af500295090b), (ServerId: e7a9589f2b624d9eb1eca1bf022089bf), (UserId: 6dc9a5d5a15b49bb87c7f318946a728b), (UserName: eckoflyte), (Client: Emby Web), (LastActivityDate: 2024-04-26T11:01:00.3859640Z), (DeviceName: Chrome Windows), (InternalDeviceId: 2), (DeviceId: e95fcd11-8672-4ad6-8950-66d38abc4037), (ApplicationVersion: 4.8.5.0), (AppIconUrl: https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/chrome.png), (SupportedCommands: [ (0: MoveUp), (1: MoveDown), (2: MoveLeft), (3: MoveRight), (4: PageUp), (5: PageDown), (6: PreviousLetter), (7: NextLetter), (8: ToggleOsd), (9: ToggleContextMenu), (10: Select), (11: Back), (12: SendKey), (13: SendString), (14: GoHome), (15: GoToSettings), (16: VolumeUp), (17: VolumeDown), (18: Mute), (19: Unmute), (20: ToggleMute), (21: SetVolume), (22: SetAudioStreamIndex), (23: SetSubtitleStreamIndex), (24: RefreshMediaSource), (25: DisplayContent), (26: GoToSearch), (27: DisplayMessage), (28: SetRepeatMode), (29: SetSubtitleOffset), (30: SetPlaybackRate), (31: ChannelUp), (32: ChannelDown), (33: PlayMediaSource), (34: PlayTrailers) ]), (SupportsRemoteControl: true) ]), (2: [ (PlayState: [ (CanSeek: false), (IsPaused: false), (IsMuted: false), (RepeatMode: RepeatNone), (SubtitleOffset: 0), (PlaybackRate: 1) ]), (AdditionalUsers: [  ]), (RemoteEndPoint: 192.168.0.100), (PlayableMediaTypes: [ (0: Audio), (1: Video), (2: Photo) ]), (PlaylistIndex: 0), (PlaylistLength: 0), (Id: dbd66825a6fe46d1b16c698f22600180), (ServerId: e7a9589f2b624d9eb1eca1bf022089bf), (Client: Emby Server DLNA), (LastActivityDate: 2024-04-25T13:18:39.8897258Z), (DeviceName: Denon AVC-X3700H), (InternalDeviceId: 0), (DeviceId: uuid:ca43e2cc-9e24-1467-0080-00067850e212), (ApplicationVersion: 4.8.5.0), (SupportedCommands: [ (0: VolumeDown), (1: VolumeUp), (2: Mute), (3: Unmute), (4: ToggleMute), (5: SetVolume), (6: SetAudioStreamIndex), (7: SetSubtitleStreamIndex), (8: PlayMediaSource) ]), (SupportsRemoteControl: true) ]) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: Requesting [Emby: emby] item [750] metadata. { (url: http://192.168.0.196:8096/Users/6dc9a5d5a15b49bb87c7f318946a728b/items/750?recursive=false&fields=ProviderIds%2CDateCreated%2COriginalTitle%2CSeasonUserData%2CDateLastSaved%2CPremiereDate%2CProductionYear%2CPath%2CUserDataLastPlayedDate&enableUserData=true&enableImages=false&includeItemTypes=Episode%2CMovie%2CSeries) }
[2024-04-26T21:01:36+10:00] DEBUG: HttpClient - Request [ GET: http://192.168.0.196:8096/Users/6dc9a5d5a15b49bb87c7f318946a728b/items/750?recursive=false&fields=ProviderIds%2CDateCreated%2COriginalTitle%2CSeasonUserData%2CDateLastSaved%2CPremiereDate%2CProductionYear%2CPath%2CUserDataLastPlayedDate&enableUserData=true&enableImages=false&includeItemTypes=Episode%2CMovie%2CSeries] { (options: [ (headers: [ (Accept: application/json), (Authorization: **hidden**) ]), (user_data: [ (ok: callable), (error: callable) ]) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: Processing [Emby: emby] item [750] payload. { (cached: false), (trace: [ (Name: I See You), (OriginalTitle: I See You), (ServerId: e7a9589f2b624d9eb1eca1bf022089bf), (Id: 750), (Etag: 949b9848ad28bbc5a13d4302ec9fa9ec), (DateCreated: 2024-04-19T16:48:14.0000000Z), (CanDelete: true), (CanDownload: true), (PresentationUniqueKey: 987e02ec4716f4ee69a1310f319e6c5a), (SupportsSync: true), (Container: mkv), (SortName: i see you), (ForcedSortName: i see you), (PremiereDate: 2019-09-10T14:00:00.0000000Z), (ExternalUrls: [ (0: [ (Name: IMDb), (Url: https://www.imdb.com/title/tt6079516) ]), (1: [ (Name: MovieDb), (Url: https://www.themoviedb.org/movie/524251) ]), (2: [ (Name: TheTVDB), (Url: https://thetvdb.com/dereferrer/movie/19799) ]), (3: [ (Name: Trakt), (Url: https://trakt.tv/search/tmdb/524251?id_type=movie) ]) ]), (MediaSources: [ (0: [ (Protocol: File), (Id: 987e02ec4716f4ee69a1310f319e6c5a), (Path: /data/media/drivepool/Videos/Movies/I See You (2019)/I See You (2019) [Bluray-1080p.DTS.5.1.x264-TDD].mkv), (Type: Default), (Container: mkv), (Size: 12216264320), (Name: [Bluray-1080p.DTS.5.1.x264-TDD]), (IsRemote: false), (HasMixedProtocols: false), (RunTimeTicks: 58620270000), (SupportsTranscoding: true), (SupportsDirectStream: true), (SupportsDirectPlay: true), (IsInfiniteStream: false), (RequiresOpening: false), (RequiresClosing: false), (RequiresLooping: false), (SupportsProbing: false), (MediaStreams: [ (0: [ (Codec: h264), (Language: eng), (TimeBase: 1/1000), (Title: x264 / 15075 kbps / 1080p / 23.976 fps / 2.40:1 / High Profile 4.1), (VideoRange: SDR), (DisplayTitle: 1080p H264), (DisplayLanguage: English), (NalLengthSize: 4), (IsInterlaced: false), (BitRate: 16671727), (BitDepth: 8), (RefFrames: 1), (IsDefault: true), (IsForced: false), (IsHearingImpaired: false), (Height: 808), (Width: 1920), (AverageFrameRate: 23.976025), (RealFrameRate: 23.976025), (Profile: High), (Type: Video), (AspectRatio: 240:101), (Index: 0), (IsExternal: false), (IsTextSubtitleStream: false), (SupportsExternalStream: false), (Protocol: File), (PixelFormat: yuv420p), (Level: 41), (IsAnamorphic: false), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0) ]), (1: [ (Codec: dts), (Language: eng), (TimeBase: 1/1000), (Title: DTS / 5.1 / 48 kHz / 1509 kbps / 24-bit), (DisplayTitle: English DTS 5.1 (Default)), (DisplayLanguage: English), (IsInterlaced: false), (ChannelLayout: 5.1), (BitRate: 1536000), (Channels: 6), (SampleRate: 48000), (IsDefault: true), (IsForced: false), (IsHearingImpaired: false), (Profile: DTS), (Type: Audio), (Index: 1), (IsExternal: false), (IsTextSubtitleStream: false), (SupportsExternalStream: false), (Protocol: File), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0) ]), (2: [ (Codec: opus), (Language: eng), (TimeBase: 1/1000), (Title: Commentary by director Adam Randall and producer Matt Waldeck / Opus / 2.0 / 48 kHz / 85 kbps), (DisplayTitle: English OPUS stereo), (DisplayLanguage: English), (IsInterlaced: false), (ChannelLayout: stereo), (Channels: 2), (SampleRate: 48000), (IsDefault: false), (IsForced: false), (IsHearingImpaired: false), (Type: Audio), (Index: 2), (IsExternal: false), (IsTextSubtitleStream: false), (SupportsExternalStream: false), (Protocol: File), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0) ]), (3: [ (Codec: subrip), (Language: eng), (TimeBase: 1/1000), (DisplayTitle: English (SUBRIP)), (DisplayLanguage: English), (IsInterlaced: false), (IsDefault: false), (IsForced: false), (IsHearingImpaired: false), (Type: Subtitle), (Index: 3), (IsExternal: false), (IsTextSubtitleStream: true), (SupportsExternalStream: true), (Protocol: File), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0), (SubtitleLocationType: InternalStream) ]), (4: [ (Codec: subrip), (Language: eng), (TimeBase: 1/1000), (Title: SDH), (DisplayTitle: English (SUBRIP)), (DisplayLanguage: English), (IsInterlaced: false), (IsDefault: false), (IsForced: false), (IsHearingImpaired: false), (Type: Subtitle), (Index: 4), (IsExternal: false), (IsTextSubtitleStream: true), (SupportsExternalStream: true), (Protocol: File), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0), (SubtitleLocationType: InternalStream) ]) ]), (Formats: [  ]), (Bitrate: 16671727), (RequiredHttpHeaders: [  ]), (AddApiKeyToDirectStreamUrl: false), (ReadAtNativeFramerate: false), (DefaultAudioStreamIndex: 1) ]) ]), (CriticRating: 76), (ProductionLocations: [ (0: United States of America) ]), (Path: /data/media/drivepool/Videos/Movies/I See You (2019)/I See You (2019) [Bluray-1080p.DTS.5.1.x264-TDD].mkv), (OfficialRating: R), (Overview: When a 10-year-old boy goes missing, lead investigator Greg Harper struggles to balance the pressure of the investigation and troubles with his wife, Jackie. Facing a recent affair, great strain is put on the family that slowly gnaws away at Jackie's grip on reality. But after a malicious presence manifests itself in their home and puts their son, Connor, in mortal danger, the cold, hard truth about evil in the Harper household is finally uncovered.), (Taglines: [ (0: Evil hides in plain sight) ]), (Genres: [ (0: Horror), (1: Thriller) ]), (CommunityRating: 7), (RunTimeTicks: 58620270000), (Size: 12216264320), (FileName: I See You (2019) [Bluray-1080p.DTS.5.1.x264-TDD].mkv), (Bitrate: 16671727), (ProductionYear: 2019), (RemoteTrailers: [ (0: [ (Url: https://www.youtube.com/watch?v=k72fdSYHHvQ) ]) ]), (ProviderIds: [ (Imdb: tt6079516), (Tmdb: 524251), (Tvdb: 19799) ]), (IsFolder: false), (ParentId: 385), (Type: Movie), (People: [ (0: [ (Name: Helen Hunt), (Id: 8260), (Role: Jackie Harper), (Type: Actor), (PrimaryImageTag: 8fb7c620372d66af5a0e8734bac412ea) ]), (1: [ (Name: Jon Tenney), (Id: 8261), (Role: Greg Harper), (Type: Actor), (PrimaryImageTag: b009fd1fdf64e09e532f07479c6bd314) ]), (2: [ (Name: Owen Teague), (Id: 4667), (Role: Alec Travers), (Type: Actor), (PrimaryImageTag: 4f3b37e1316b9965151542b7804b70da) ]), (3: [ (Name: Judah Lewis), (Id: 8262), (Role: Connor Harper), (Type: Actor), (PrimaryImageTag: a153b037e25fb8f09816174e1c4197f9) ]), (4: [ (Name: Libe Barer), (Id: 8263), (Role: Mindy), (Type: Actor), (PrimaryImageTag: 41031d580249afdba2de1fa90e4de4ea) ]), (5: [ (Name: Gregory Alan Williams), (Id: 3993), (Role: Detective Spitzky), (Type: Actor), (PrimaryImageTag: 272f2421e2dba0de8a11bd0140b4df70) ]), (6: [ (Name: Erika Alexander), (Id: 7865), (Role: Lieutenant Davis), (Type: Actor), (PrimaryImageTag: 62fd61bdc314e6da64d5974298a60e7d) ]), (7: [ (Name: Sam Trammell), (Id: 8264), (Role: Todd), (Type: Actor), (PrimaryImageTag: bc0ebf1af4936019da465134b5f21bcd) ]), (8: [ (Name: Jeremy Gladen), (Id: 8265), (Role: Tommy Braun), (Type: Actor), (PrimaryImageTag: 0bea812a764a2ef3a9d2c063009a168a) ]), (9: [ (Name: Allison King), (Id: 8266), (Role: Officer Grace Caleb), (Type: Actor), (PrimaryImageTag: dff1dd22c1f6f3b062ca34a2a69eff18) ]), (10: [ (Name: Adam Kern), (Id: 8267), (Role: Window Repairman), (Type: Actor), (PrimaryImageTag: 5a8430b59a3eb9f344f9abbb0579ee05) ]), (11: [ (Name: Riley Caya), (Id: 8268), (Role: Justin Whitter), (Type: Actor) ]), (12: [ (Name: Nicole Forester), (Id: 8269), (Role: Mrs. Whitter), (Type: Actor), (PrimaryImageTag: 0a442bd4f88de6dada52c49867c1fedf) ]), (13: [ (Name: John Newberg), (Id: 8270), (Role: Mr. Braun), (Type: Actor), (PrimaryImageTag: 0648b647a30ee9797961c45920df833c) ]), (14: [ (Name: Teri Clark), (Id: 8271), (Role: Mrs. Braun), (Type: Actor), (PrimaryImageTag: 040e34901a90583071d89363e2e941ff) ]), (15: [ (Name: Wyatt McClure), (Id: 8272), (Role: Young Tommy Braun), (Type: Actor), (PrimaryImageTag: 0658e8c3f61e966b5ada2c8236be0f82) ]), (16: [ (Name: Brooks Roseberry), (Id: 8273), (Role: Young Alec Travers), (Type: Actor) ]), (17: [ (Name: Cherie McClain), (Id: 8274), (Role: Newscaster), (Type: Actor) ]), (18: [ (Name: A.J. Ransom), (Id: 8275), (Role: Michael King), (Type: Actor) ]), (19: [ (Name: Thomas W. Wolf), (Id: 8276), (Role: Fly Fisherman), (Type: Actor) ]), (20: [ (Name: Mark Salas), (Id: 8277), (Role: Detective), (Type: Actor) ]), (21: [ (Name: Daniel Repas), (Id: 8278), (Role: Police Officer Valmont), (Type: Actor) ]), (22: [ (Name: Jennifer Grace), (Id: 8279), (Role: Lydia), (Type: Actor) ]), (23: [ (Name: Joe Fishel), (Id: 3213), (Role: Police Officer), (Type: Actor), (PrimaryImageTag: a8909ae711cb45973650177e071e20c5) ]), (24: [ (Name: Brian "Wolfman Black" Bowman), (Id: 8280), (Role: Police Officer), (Type: Actor), (PrimaryImageTag: 4ffacf6651a0372ff4531b97af59a089) ]), (25: [ (Name: Adam Randall), (Id: 8259), (Type: Director) ]) ]), (Studios: [ (0: [ (Name: Zodiac Features), (Id: 8281) ]) ]), (GenreItems: [ (0: [ (Name: Horror), (Id: 1258) ]), (1: [ (Name: Thriller), (Id: 795) ]) ]), (TagItems: [ (0: [ (Name: dv), (Id: 919) ]) ]), (LocalTrailerCount: 0), (UserData: [ (PlayedPercentage: 11.388289153223), (PlaybackPositionTicks: 6675845850), (PlayCount: 5), (IsFavorite: false), (LastPlayedDate: 2024-04-26T10:50:43.0000000Z), (Played: false) ]), (DisplayPreferencesId: dbf7709c41faaa746463d67978eb863d), (PrimaryImageAspectRatio: 0.68), (MediaStreams: [ (0: [ (Codec: h264), (Language: eng), (TimeBase: 1/1000), (Title: x264 / 15075 kbps / 1080p / 23.976 fps / 2.40:1 / High Profile 4.1), (VideoRange: SDR), (DisplayTitle: 1080p H264), (DisplayLanguage: English), (NalLengthSize: 4), (IsInterlaced: false), (BitRate: 16671727), (BitDepth: 8), (RefFrames: 1), (IsDefault: true), (IsForced: false), (IsHearingImpaired: false), (Height: 808), (Width: 1920), (AverageFrameRate: 23.976025), (RealFrameRate: 23.976025), (Profile: High), (Type: Video), (AspectRatio: 240:101), (Index: 0), (IsExternal: false), (IsTextSubtitleStream: false), (SupportsExternalStream: false), (Protocol: File), (PixelFormat: yuv420p), (Level: 41), (IsAnamorphic: false), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0) ]), (1: [ (Codec: dts), (Language: eng), (TimeBase: 1/1000), (Title: DTS / 5.1 / 48 kHz / 1509 kbps / 24-bit), (DisplayTitle: English DTS 5.1 (Default)), (DisplayLanguage: English), (IsInterlaced: false), (ChannelLayout: 5.1), (BitRate: 1536000), (Channels: 6), (SampleRate: 48000), (IsDefault: true), (IsForced: false), (IsHearingImpaired: false), (Profile: DTS), (Type: Audio), (Index: 1), (IsExternal: false), (IsTextSubtitleStream: false), (SupportsExternalStream: false), (Protocol: File), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0) ]), (2: [ (Codec: opus), (Language: eng), (TimeBase: 1/1000), (Title: Commentary by director Adam Randall and producer Matt Waldeck / Opus / 2.0 / 48 kHz / 85 kbps), (DisplayTitle: English OPUS stereo), (DisplayLanguage: English), (IsInterlaced: false), (ChannelLayout: stereo), (Channels: 2), (SampleRate: 48000), (IsDefault: false), (IsForced: false), (IsHearingImpaired: false), (Type: Audio), (Index: 2), (IsExternal: false), (IsTextSubtitleStream: false), (SupportsExternalStream: false), (Protocol: File), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0) ]), (3: [ (Codec: subrip), (Language: eng), (TimeBase: 1/1000), (DisplayTitle: English (SUBRIP)), (DisplayLanguage: English), (IsInterlaced: false), (IsDefault: false), (IsForced: false), (IsHearingImpaired: false), (Type: Subtitle), (Index: 3), (IsExternal: false), (IsTextSubtitleStream: true), (SupportsExternalStream: true), (Protocol: File), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0), (SubtitleLocationType: InternalStream) ]), (4: [ (Codec: subrip), (Language: eng), (TimeBase: 1/1000), (Title: SDH), (DisplayTitle: English (SUBRIP)), (DisplayLanguage: English), (IsInterlaced: false), (IsDefault: false), (IsForced: false), (IsHearingImpaired: false), (Type: Subtitle), (Index: 4), (IsExternal: false), (IsTextSubtitleStream: true), (SupportsExternalStream: true), (Protocol: File), (ExtendedVideoType: None), (ExtendedVideoSubType: None), (ExtendedVideoSubTypeDescription: None), (AttachmentSize: 0), (SubtitleLocationType: InternalStream) ]) ]), (PartCount: 1), (ImageTags: [ (Primary: c88ae2ef0d498ba7ddab329696dd7d5f), (Logo: 17835549f51223af1e7500a7f17b1b29), (Thumb: 7076575fd2ddb7d44f3c0052bb6f1d89) ]), (BackdropImageTags: [ (0: 77e55b3ffd69208629d99f60c08af97b) ]), (Chapters: [ (0: [ (StartPositionTicks: 0), (Name: Chapter 1), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 0) ]), (1: [ (StartPositionTicks: 2475390000), (Name: Chapter 2), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 1) ]), (2: [ (StartPositionTicks: 7731890000), (Name: Chapter 3), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 2) ]), (3: [ (StartPositionTicks: 13896380000), (Name: Chapter 4), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 3) ]), (4: [ (StartPositionTicks: 18430910000), (Name: Chapter 5), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 4) ]), (5: [ (StartPositionTicks: 25037510000), (Name: Chapter 6), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 5) ]), (6: [ (StartPositionTicks: 30723190000), (Name: Chapter 7), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 6) ]), (7: [ (StartPositionTicks: 34567030000), (Name: Chapter 8), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 7) ]), (8: [ (StartPositionTicks: 37049510000), (Name: Chapter 9), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 8) ]), (9: [ (StartPositionTicks: 40923380000), (Name: Chapter 10), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 9) ]), (10: [ (StartPositionTicks: 47469920000), (Name: Chapter 11), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 10) ]), (11: [ (StartPositionTicks: 54577020000), (Name: Chapter 12), (ImageTag: 7d648313e6e724635f985cfb76a83256), (MarkerType: Chapter), (ChapterIndex: 11) ]) ]), (MediaType: Video), (LockedFields: [  ]), (LockData: false), (Width: 1920), (Height: 808) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: Emby.Progress: Updating [Emby: emby] movie [I See You (2019)] watch progress. { (time: 8200000000), (item: [ (id: 358) ]), (remote: [ (id: 750), (url: http://192.168.0.196:8096/Users/6dc9a5d5a15b49bb87c7f318946a728b/Items/750/UserData) ]) }
[2024-04-26T21:01:36+10:00] DEBUG: HttpClient - Request [ POST: http://192.168.0.196:8096/Users/6dc9a5d5a15b49bb87c7f318946a728b/Items/750/UserData] { (options: [ (headers: [ (Accept: application/json), (Authorization: **hidden**), (Content-Type: application/json) ]), (json: [ (PlaybackPositionTicks: 8200000000) ]), (user_data: [ (id: 358), (context: [ (item: [ (id: 358), (type: movie), (title: I See You (2019)) ]), (remote: [ (id: 750), (url: http://192.168.0.196:8096/Users/6dc9a5d5a15b49bb87c7f318946a728b/Items/750/UserData) ]), (backend: emby) ]), (ok: callable), (error: callable) ]) ]) }
[2024-04-26T21:01:36+10:00] NOTICE: SYSTEM: Sending [1] progress update requests. { (time: [ (start: "2024-04-26T21:01:36+10:00") ]) }
[2024-04-26T21:01:36+10:00] NOTICE: SYSTEM: Updated [emby] [I See You (2019)] watch progress. { (item: [ (id: 358), (type: movie) ]), (remote: [ (id: 750), (url: http://192.168.0.196:8096/Users/6dc9a5d5a15b49bb87c7f318946a728b/Items/750/UserData) ]), (status_code: 204) }
[2024-04-26T21:01:36+10:00] NOTICE: SYSTEM: Sent [1] watch progress requests. { (time: [ (start: "2024-04-26T21:01:36+10:00"), (end: "2024-04-26T21:01:36+10:00"), (duration: 0) ]) }
[2024-04-26T21:01:36+10:00] NOTICE: Using WatchState Version - '20240423-03e7c1e'.

Thanks, im re-testing the right now it seems there is an issue with emby not sure why it's only triggers when specific conditions are met. I'll see what i can do

Thanks for the logs, Please wait for https://github.com/arabcoders/watchstate/actions/runs/8847600438 to finish to build after that change the tag to arabcoders/watchstate:dev and pull the new build. and do the following
$ docker exec -ti watchstate config:edit -k 'options.use_old_progress_endpoint' -e true -s plextv

Unfortunately, it still doesn't work. I repeated it about 10 times and got really inconsistent behaviour. Sometimes I would get INFO: No watch progress items in the queue.. One time out of 10, it would actually work. All the other times it was exhibiting the same bug mentioned above.
One thing that seems to be consistent is that when issuing
docker exec -ti watchstate console backend:search:id -s emby 750 -o yaml --include-raw-response

The playback position would always be correct (where I last stopped the movie). For some reason its just not getting picked up properly when issuing updates to backends.

Unfortunately, it still doesn't work. I repeated it about 10 times and got really inconsistent behaviour. Sometimes I would get INFO: No watch progress items in the queue.. One time out of 10, it would actually work. All the other times it was exhibiting the same bug mentioned above.
One thing that seems to be consistent is that when issuing
docker exec -ti watchstate console backend:search:id -s emby 750 -o yaml --include-raw-response

The playback position would always be correct (where I last stopped the movie). For some reason its just not getting picked up properly when issuing updates to backends.

Can you do this to see the data that is actually in the database
$ docker exec -ti db:list --guid imdb://tt6079516 -o json

It does not update. Having said that, when syncing from Plex to Emby (which always works), it also does not update - it does not seem to affect the intended function.
To get it to actually update, I have to run the import command, and even when it is updated and I run the progress state update command, it does not push the correct progress time. I feel like its pulling from somewhere else.

It does not update. Having said that, when syncing from Plex to Emby (which always works), it also does not update - it does not seem to affect the intended function.
To get it to actually update, I have to run the import command, and even when it is updated and I run the progress state update command, it does not push the correct progress time (from Emby to Plex). I feel like its pulling from somewhere else.

Can you do this to see the data that is actually in the database
$ docker exec -ti db:list --guid imdb://tt6079516 -o json

It does not update. Having said that, when syncing from Plex to Emby (which always works), it also does not update - it does not seem to affect the intended function.
To get it to actually update, I have to run the import command, and even when it is updated and I run the progress state update command, it does not push the correct progress time (from Emby to Plex). I feel like its pulling from somewhere else.

Do this command to show locally stored data and report back pls
$ docker exec -ti db:list --guid imdb://tt6079516 -o json

That's exactly what I ran when I mentioned the data did not update in my comment above. Even thought it does not update (specifically the progress key), it doesn't seem to affect the progress sync from Plex to Emby which always works.
To get it to actually update, I have to run the import command, and even when it is updated and I run the progress state update command, it does not push the correct progress time (from Emby to Plex). I feel like its pulling from somewhere else.

It does not update. Having said that, when syncing from Plex to Emby (which always works), it also does not update - it does not seem to affect the intended function.
To get it to actually update, I have to run the import command, and even when it is updated and I run the progress state update command, it does not push the correct progress time (from Emby to Plex). I feel like its pulling from somewhere else.

Do this command to show locally stored data and report back pls
$ docker exec -ti db:list --guid imdb://tt6079516 -o json

That's exactly what I ran when I mentioned the data did not update in my comment above. Even thought it does not update (specifically the progress key), it doesn't seem to affect the progress sync from Plex to Emby which always works.
To get it to actually update, I have to run the import command, and even when it is updated and I run the progress state update command, it does not push the correct progress time (from Emby to Plex). I feel like its pulling from somewhere else.

Thank you i need to see the actual data to try to determine the source of bug, as of right now im testing live and everything is working from plex > emby and the reverse is true except in one condition which is if the play progress in plex is higher than emby it doesn't update. which i assume is a bug somewhere in either my implementation or plex side.
I need to see the raw data to try to narrow down.

Unfortunately for me, regardless of Emby or Plex progress being higher, it just does not work at all.
Upon latest testing, I play the movie from Emby, stop it. Then run import command on all backends. Local data now shows the following where the Emby progress time appears to be correct.
root@lxc-dbn-docker:/mnt/eckoflyte/docker/homelab# docker exec -ti watchstate console db:list --guid imdb://tt6079516 -o json
[
    {
        "id": 358,
        "type": "movie",
        "updated": "2024-04-26T21:54:09+10:00",
        "watched": false,
        "via": "emby",
        "title": "I See You",
        "year": 2019,
        "season": null,
        "episode": null,
        "parent": [],
        "guids": {
            "guid_imdb": "tt6079516",
            "guid_tmdb": "524251",
            "guid_tvdb": "19799"
        },
        "metadata": {
            "emby": {
                "id": "750",
                "type": "movie",
                "watched": "0",
                "via": "emby",
                "title": "I See You",
                "guids": {
                    "guid_imdb": "tt6079516",
                    "guid_tmdb": "524251",
                    "guid_tvdb": "19799"
                },
                "added_at": "1713545294",
                "extra": {
                    "date": "2019-09-11"
                },
                "library": "3",
                "year": "2019",
                "path": "/data/media/drivepool/Videos/Movies/I See You (2019)/I See You (2019) [Bluray-1080p.DTS.5.1.x264-TDD].mkv",
                "progress": "3394828"
            },
            "jellyfin": {
                "id": "987e02ec4716f4ee69a1310f319e6c5a",
                "type": "movie",
                "watched": "0",
                "via": "jellyfin",
                "title": "I See You",
                "guids": {
                    "guid_imdb": "tt6079516",
                    "guid_tmdb": "524251"
                },
                "added_at": "1713545294",
                "extra": {
                    "date": "2019-09-11"
                },
                "library": "f137a2dd21bbc1b99aa5c0f6bf02a805",
                "year": "2019",
                "path": "/data/media/drivepool/Videos/Movies/I See You (2019)/I See You (2019) [Bluray-1080p.DTS.5.1.x264-TDD].mkv",
                "progress": "0"
            },
            "plextv": {
                "id": "36305",
                "type": "movie",
                "watched": "0",
                "via": "plextv",
                "title": "I See You",
                "guids": {
                    "guid_imdb": "tt6079516",
                    "guid_tmdb": "524251",
                    "guid_tvdb": "19799"
                },
                "rating": "0",
                "added_at": "1713545311",
                "extra": {
                    "date": "2019-12-10"
                },
                "library": "6",
                "year": "2019",
                "path": "/data/media/drivepool/Videos/Movies/I See You (2019)/I See You (2019) [Bluray-1080p.DTS.5.1.x264-TDD].mkv",
                "progress": "2032969"
            }
        },
        "extra": {
            "emby": {
                "event": "task.import",
                "received_at": "2024-04-26T23:55:00+10:00"
            },
            "jellyfin": {
                "event": "UserDataSaved",
                "received_at": "2024-04-26T21:50:08+10:00"
            },
            "plextv": {
                "event": "task.import",
                "received_at": "2024-04-26T23:53:54+10:00"
            }
        }
    }
]

However, when I go to run progress state update, the following appears
[2024-04-26T23:55:57+10:00] INFO: No watch progress items in the queue.

Just very inconsistent behaviour. Have been trying to figure this out for hours and I am unsure of what I am doing wrong.

Hmm... Alright thank you. One final suggestion, can you turn on webhooks and try progress syncing via that way? see if it works for you as i am using webhooks it's working as expected.

Yes, I have been using webhooks this whole time. I only started using the import command to test after you asked if the data was getting updated locally.

@eckozen84 I believe i may have fixed the problem with emby webhook progress sync. Please pull latest arabcoders/watchstate:dev and try now.

The issue has been fixed in #425, if you still have further issue please open issue and attach the relevant logs.

repo: arabcoders/watchstate


text:
Add new documentation

(Normally I wouldn't put so much in one PR but this was the easiest way to fix an earlier git mistake.)

Contributing guidelines
How to verify cryptographic hashes and signatures
How to vote in an Aragon Network Vote

@john-light I pushed a small change, please have a look and move the PR from Draft to Ready for review when done.

@Smokyish  this is ready to merge

source: gharchive/pull-request

authors: Smokyish john-light

repo: aragon/aragon-wiki

license_type: permissive

license_source: github-api


text:
feat: support show database rules

parser support "show database rules from DBName"

I just resolved the merge conflicts : )

repo: arana-db/parser


text:
[3.10] Introduce ThreadGuard

This is a backport of #16918

Introduce ThreadGuard

A ThreadGuard is a struct that wraps a vector of threads and ensures
all threads are (tried to be) joined if the scope is left.
This is for example important if an excpetion is thrown and the scope
is left without completing the control flow.
Co-authored-by: Valery Mironov valera.mironow@gmail.com
IMPORTANT: when this PR gets merged, please also merge https://github.com/arangodb/arangodb/pull/16933!

IMPORTANT: when this PR gets merged, please also merge https://github.com/arangodb/arangodb/pull/16933!

authors: jsteemann markuspf

repo: arangodb/arangodb

license_source: bigquery


text:
fix ms compilation

Please note that for legal reasons we require you to sign the
Contributor Agreement
before we can accept your pull requests.

Really likes how #MSVC gives up on this:
C:\c\workspace\RELEASE__BuildPackages\arangod\Aql\EngineInfoContainerDBServer.cpp(360): fatal error C1001: An internal error has occurred in the compiler.
[C:\c\r_EP-dev\arangod\arangoserver.vcxproj]   (compiler file 'msc1.cpp', line 1468)
   To work around this problem, try simplifying or changing the program near the locations listed above.
  Please choose the Technical Support command on the Visual C++
   Help menu, or open the Technical Support help file for more information
  Internal Compiler Error in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\CL.exe.  You will be prompted to send an error report to Microsoft later.
  INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\CL.exe'
      Please choose the Technical Support command on the Visual C++
      Help menu, or open the Technical Support help file for more information

authors: dothebart gnusi


text:
Bug fix/fix signed int overflow

Scope & Purpose
Fix various value overflows in RandomGenerator code that were reported by UBSan.

[x] Bug-Fix for devel-branch (i.e. no need for backports?)
[x] The behavior in this PR can be (and was) manually tested (support / qa / customers can test it)
[x] The behavior change can be verified via automatic tests

Testing & Verification
This PR adds tests that were used to verify all changes:

[x] Added new C++ Unit Tests (Either GoogleTest or Catch-Test)

[x] I ensured this code runs with ASan / TSan or other static verification tools

https://jenkins01.arangodb.biz/view/PR/job/arangodb-matrix-pr/5700/

https://jenkins01.arangodb.biz/view/PR/job/arangodb-matrix-pr/5731/

https://jenkins01.arangodb.biz/view/PR/job/arangodb-matrix-pr/5751/

https://jenkins01.arangodb.biz/view/PR/job/arangodb-matrix-pr/5761/

Tests blue.
@maierlars : r u happy with it now?


text:
0.10.0

[ ] Use vlfs-0.1.0

Done in commit 12396994cbd82deb3ae7f8fb5c188ead9fa046a6

source: gharchive/issue

repo: arapelle/arba

license: MIT


text:
🛑 Test loibra.moo.com is down

In 5e05369, Test loibra.moo.com (http://loibra.mooo.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Test loibra.moo.com is back up in e2b95d6.

repo: aratan/Monitorizaci-n


text:
🛑 ARCaptcha API is down

In e1d571f, ARCaptcha API (https://api.arcaptcha.co) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ARCaptcha API is back up in 8ba4c32.

repo: arcaptcha/ARCaptcha-monitoring


text:
FirstItem doesn't work properly

Basically I have a listView at first and on click of any particular list item I open the specific index in the carousel by passing the index as props to the FirstItem. Although when i'm tapping quickly to other list item the carousel firstItem doesn't update.
renderCarousel(cardIndex) {
    console.log("index"+cardIndex);
    return (
      <Carousel
        sliderWidth={sliderWidth}
        itemWidth={itemWidth}
        firstItem={cardIndex}
        inactiveSlideScale={0.94}
        inactiveSlideOpacity={0.6}
        enableMomentum={false}
        containerCustomStyle={styles.slider}
        contentContainerCustomStyle={styles.sliderContainer}
        showsHorizontalScrollIndicator={false}
        snapOnAndroid
        removeClippedSubviews={false}
        onSnapToItem={(index) => this.onCardChange(index)}
        ref={(carousel) => { this._carousel = carousel; }}
      >
          {this.getCards()}
      </Carousel>
    );
  }

getCards() {
    return this.props.currentCards.map((card) => {
      return (
        <Card style={styles.slideInnerContainer} key={card._id}>
          <Text style={styles.title} >{card.title}</Text>
          <Text style={styles.subtitle}>{card.description}</Text>
        </Card>
      );
    });
  }`

Hi @nitish1099,
I can confirm that updating firstItem will not update the active slide, and I'm going to work on a fix. Still, I wouldn't recommend using it in this case. Have you tried using the snapToItem method?

I tried but didn't work for me. Which life cycle method would you recommend to put the snapToItem code in also, could you illustrate with an example?

Hi @nitish1099,
First, note that version 2.4.0 contains a fix for the dynamic update of firstItem.
Then, regarding your need, it should be pretty straightforward. This is how we usually do it:
<TouchableOpacity onPress={() => this._carousel.snapToItem(index) />

<Carousel ref={(c) => { this._carousel = c; }}>
    // your slides
</Carousel>

@bd-arc I'm navigating between different scenes so maybe I would have to do it in a lifecycle method and 2.4.0 didn't fix it for me.

@nitish1099 Unfortunately, I can't go further without a sample project that can help me reproduce the issue. If you have time to create one, I'll gladly take a look at it.

repo: archriss/react-native-snap-carousel


text:
Mesh doesn't use custom logger

Issue workflow progress

Progress of the issue based on the
Contributor Workflow

[ ] 1. The issue provides a reproduction available on
Github,
Stackblitz
or
CodeSandbox

Make sure to fork this template and run yarn generate in the terminal.
Please make sure Mesh package versions under package.json matches yours.

[ ] 2. A failing test has been provided
[ ] 3. A local solution has been provided
[ ] 4. A pull request is pending review

Describe the bug
When using .meshrc.ts to configure Mesh and passing the logger option - Mesh doesn't seem to use that and instead instantiates a new logger.
To Reproduce Steps to reproduce the behavior:

Clone https://github.com/kamilkowalski/mesh-logger-issue
Run npm i && npx mesh dev
There's one log line that uses the custom logger which I've added in .meshrc.ts directly, but Mesh's logs don't use the custom logger

Expected behavior
I've expected Mesh to use the custom logger instance passed in config.
Environment:

OS: macOS 14.5
@graphql-mesh/cli: v0.90.10
NodeJS: v18.12.1

Ok, I found the issue - the logger option is documented^1 as:

Logger instance that matches Console interface of NodeJS

But in fact the resolveLogger function only uses that option if it's a string designating a module to be loaded.^2
That's a bit confusing. Is the problem that of build vs runtime - so we can't really pass an instance because the config is only used to generate TypeScript artifacts so they need to contain the code that instantiated the logger?
I managed to work around it by passing a path to a TypeScript module in the logger option:
{
  logger: "./logger"
}

And doing the setup in that file. If it's impossible to pass an instance of the logger in config then I can update the type documentation, but I'd appreciate someone confirming this.

Just noticed the above doesn't work for production builds because the import isn't handled correctly - Mesh tries to load the file from the .mesh directory instead of going up one directory similarly to how it handles additional resolvers.

Actually that option is not supposed to an object as a logger. But a path to a code file that exports an object implements Logger from @graphql-mesh/types.
It is a missing documentation in that case.
But after build, if it doesn't load the module from the path correctly. This is a bug then.
Thanks for the feedback!
Apparently the types there and resolveLogger need to be fixed.
Would you try to tackle it in a PR?

I'll take a stab at it. 😊

authors: ardatan kamilkowalski

repo: ardatan/graphql-mesh


text:
[Library Manager] Please add OpenJigWare_A (for OpenRB-150, dynamixel control library)

Hello, I developed the library for control dynamixel with OpenRB-150,
it use dynamixel2arduino library.
Please add this library to the library manager.
Github repository: https://github.com/ojw5014/OpenJigWare_A/releases/tag/v1.0.0
Thank you.

Hi @ojw5014. We have a new system for submitting libraries. The instructions are here:
https://github.com/arduino/library-registry#adding-a-library-to-library-manager
Please let me know if you have any questions.
Regards, Per

repo: arduino/library-registry


text:
Add tdslite MSSQL connector library

tdslite is a lightweight, platform-independent MS-TDS implementation written in pure C++11 that can work with just 2kB of SRAM.

@ArduinoBot


text:
Add ability to store more data from the Google Maps API

Add ability to store more data from the Google Maps API form field.

Add documentation for the saveExtendedData parameter.
Add examples of the returned and stored data.

That's a great idea! How do you feel about saving the zoom level as well? That's usually enough for re-creating the map on the frontend later. That's of course assuming you're actually using Google Maps and not some other provider.

Hey @daun, the data stored for the Bounding Box, it is exactly what is displayed in the viewport.
That should be enough for basic calculations like detecting if a given lat, long is included within the selected location.
But, there is definitively room for improvement in the future.

/rebase

/build-frontend

/build-frontend

/build-frontend

/rebase

/build-frontend

/rebase

/build-frontend

/build-frontend

/rebase

/rebase

authors: daun ifox sauron


text:
Exponent notation not recognized

Vjg= evaluation of the visually selected 2 lines below does not recognize the exponent notation
n = 2.304e7
n/10 = Crunch error: value for e7 not found
g== on the second line produces the correct result:
n/10 = 2304000

Good catch! I'll see what I can do.

I've added a fix let me know if this fixes your problem.

Thanks! It works fine.

authors: arecarn cizmazia

license: WTFPL


text:
ADBDEV-4938-56: Add assertions to return from dynamic_cast.

Add assertions to return from dynamic_cast.
dynamic_cast may return NULL, so I added assertions.

https://github.com/arenadata/gpdb/pull/806

repo: arenadata/gpdb


text:
Skip non row result sets

This make queries that return result sets like "x rows affected" get
skipped instead of being returned as an empty result set.
At some point we might want to return actual result set objects with
more info like return codes and output params, but that would require
a substantial breaking change to the API anyway.

Pull Request Test Coverage Report for Build 150

16 of 16 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 77.635%

Totals

Change from base Build 147:
0.1%

Covered Lines:
302

Relevant Lines:
389

💛  - Coveralls

authors: brendanlong coveralls

repo: arenadotio/ocaml-mssql


text:
[BUG] dry_run require parameters

Describe the bug
If I'm not wrong I can pipeline.dry_run without any parameter as in pipeline.run. However, this is not allowed.
To Reproduce
Code to reproduce
with Pipeline(name="mistral-pipe", description="A pipeline to generate and score a distiset") as pipeline:

    load_dataset = LoadDataFromDicts(
        name= "load_dataset", data=[{"input": "test"}],
    )
distiset = pipeline.dry_run()

Expected behaviour
A clear and concise description of what you expected to happen.
Screenshots

Desktop (please complete the following information):

Package version: 1.1.0
Python version: Python 3.10.12

Additional context
Add any other context about the problem here.

Thanks for reporting @sdiazlor, will tackle this later today.

authors: plaguss sdiazlor

repo: argilla-io/distilabel


text:
feat: Updating Python runtime to use Python SDK

This PR is dependent on #211. That one should be merged first, and this one next.
The build should work after being merged to main branch, as proved by this GH Action build: https://github.com/domderen/argo-dataflow/actions/runs/1107787084

I think the needs rebasing?

Yup, it's rebased now.

authors: alexec domderen

repo: argoproj-labs/argo-dataflow


text:
Add task template mechanism

Description
This MR provides additional funcitonality for templating tasks with a class TaskTemplate.
Example
task_template = TaskTemplate('myTemplate', say,
    [{
        'message': "default value for param 'message'",
        "other_message": {"default": {"value": {"for": "other_message"}}},
    }],
)
a = task_template.task("taskWithDefaultValues")
b = task_template.task("taskWithNonDefaultValues", [{"other_message": "hello again"}])

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@flaviuvadan Hello, can we run the tests again? Coverage for workflow_editors.py should better now.

@flaviuvadan I'm glad to see that this MR is now fully passing all the checks.
I think this would be nice to include in 3.2.0 which you've opened a MR for.
I was wondering about next steps and would like your opinion if this is what's preferred:

rebase this MR with branch hera/3.2.0
change target branch to hera/3.2.0
write changelog in that branch

I'm open to suggestions.

@flaviuvadan I've rebased into hera/3.2.0 and added info to CHANGELOG.md.
Also, I've noticed that the current codecov comment is not related to the latest commit. Running coverage locally with tox resulted in higher values.
Is there anything else I can do?

Thank you so much for the PR @kromanow94! 🙂 Following is an explanation of my perspective.
First, I merged the 3.2.0 branch and really did not expect it to close your PR automatically! I apologize for that!
I wanted to leave a high level comment on this idea; I think I understand the value of it! The point is to make it easier to create tasks from a given task template, conceptually. Users would get to define a task once and keep performing .task to keep creating tasks that are copies of the original one but with modified parameters. The idea here is to save the users from having to perform something like task.argo_task = task.get_argo_task() if they modify something on a task template. So, I definitely acknowledge the problem. However, I think it approaches the problem from the wrong angle. Here are the problems I see with the approach, which I will follow up with alternatives:

Hera aims to facilitate access to Argo Workflows by providing an easy interface for scheduling workflows. Part of this mission is to maintain consistency with the language of Argo, so that Hera's user base has an easy time maintaining a 1:1 mapping between Argo concepts and Hera concepts. Hera aims to maintain this 1:1 association but make the concepts easily accessible, by doing some work for the user. The idea of a TaskTemplate does not exist in Argo, yet at least. Only WorkflowTemplates are, currently, available
I think there is a problem with the internal design of Hera, which motivated the approach presented by this PR. I think the get_argo_spec call should be, perhaps, performed by the workflow rather than the task. This way users can make copies of a task, modify fields/parameters, and only have the task "construct" when it passes through the workflow. This open the opportunity to reduce the "work" that a task does, and make it provide builder hooks for the workflow so the workflow constructs the argo spec of the task, and task becomes lighter as a consequence of this complexity reduction. Exposing something like a (deep) copy() on the task is perhaps an easier way, conceptually, to make a "template" - a user makes a (deep) copy of a task. modifies fields as desired, then when the task is injected into a workflow, then and only then, it is assembled into an Argo task representation.

Again, I must apologize for closing the PR! I really did not expect this branch to be closed! It makes sense now since the head branch was deleted.

@flaviuvadan Thank you for your comment. No worries about closing this PR.
Although, I have other opinion on Argo not implementing the TaskTemplate: it's possible to create a template for a task inside a workflow and then reference it in other tasks. This is shown in the Argo examples:

https://github.com/argoproj/argo-workflows/blob/master/examples/dag-diamond-steps.yaml#L52
https://github.com/argoproj/argo-workflows/blob/master/examples/dag-diamond-steps.yaml#L62
https://github.com/argoproj/argo-workflows/blob/master/examples/dag-diamond-steps.yaml#L67

In current hera implementation, every call to the Task class creates a template in .spec.templates and then calls it in task defined in the DAG template that is used as a workflow entrypoint. This task (that is defined as one of the tasks in the entrypoint DAG) references it with something like spec.templates[#].tasks[#].template: A.
What I had in mind for the value in that PR is that we could get rid of redefining the templates.
Imagine I want to have a 100 of tasks that are based on the same function. This function have 100 lines. This creates 100 templates. Each of these templates have exactly the same content in source key. At end, we use about 10 000 lines for the workflow definition only for the templates (not including parameters, name and other fields). If we were to use the task template, we would have only one template defined with a 100 lines and then referenced in 100 tasks defined at the DAG level. This brings considerate savings in terms of how big this workflow defined with hera can be.
Once you have a hundreds or thousands of tasks that each uses the same python function, it results in redefinition of the template for hundreds or thousands of tasks. It's not optimal and could create an issue when workflow size exceeds maximum object size that depends on ETCD.

@flaviuvadan Thank you, much appreciated.
From what I've seen in the code - the task template generation is already handled for a Task. This PR I proposed contained reusing into that, combined with testing if given template object is already present on the list of workflow templates. Still, I understand this may not be desired solution.
I offer my help for coding if required.

@kromanow94 I've been thinking about this a bit more.. I still think the idea of saving templates is amazing but there are several cases in which resources, such as volumes, need their own dynamically provisioned volume IDs. I am wondering if you have any thoughts on how we could get around this aspect? The script template holds the resources associated with a pod running a task. If a user wants to provision an independent volume for a task the user can do something like
w = Workflow(...)
for i in range(5):
    t = Task(..., resources=Resources(volumes=[Volume('5Gi', '/mnt/vol')]))
    w.add_task(t)

The problem is that when w creates the task templates there will be independent volume IDs for each task, each corresponding to a single volume to attach. Maybe there's a balance to strike.. perhaps a task that has func_params set can use a shared template and tasks that have a single params do not? When func_params is passed Argo will create a task group rather than single tasks, and these will share resources, such as the same volume if a user specifies one. In this case the same template can be used I think. Thoughts?

authors: CLAassistant flaviuvadan kromanow94

repo: argoproj-labs/hera-workflows


text:
fix(build): uname handling for mac M1 arch. Fixes #13112

Fixes #13112
Motivation

Unable to build the project using make start UI=true, and fails because of my M1 arch
Modifications

I updated the TARGET_PLATFORM value on the Makefile to be able to also handle my arch value which is aarch64

Verification

@agilgur5 I implemented your last option as it looks way nicer
Also I was facing an issue running make pre-commit -B described here , so I implemented the recommended fix
vscode ➜ ~/go/src/github.com/argoproj/argo-workflows (fix-make-mac-m1) $ mkdocs build --strict
Traceback (most recent call last):
  File "/home/vscode/.local/bin/mkdocs", line 8, in <module>
    sys.exit(cli())
  File "/home/vscode/.local/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/vscode/.local/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/vscode/.local/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/vscode/.local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/vscode/.local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/vscode/.local/lib/python3.10/site-packages/mkdocs/__main__.py", line 281, in build_command
    cfg = config.load_config(**kwargs)
  File "/home/vscode/.local/lib/python3.10/site-packages/mkdocs/config/base.py", line 362, in load_config
    from mkdocs.config.defaults import MkDocsConfig
  File "/home/vscode/.local/lib/python3.10/site-packages/mkdocs/config/defaults.py", line 7, in <module>
    from mkdocs.config import config_options as c
  File "/home/vscode/.local/lib/python3.10/site-packages/mkdocs/config/config_options.py", line 36, in <module>
    from mkdocs import plugins, theme, utils
  File "/home/vscode/.local/lib/python3.10/site-packages/mkdocs/theme.py", line 16, in <module>
    from mkdocs import localization, utils
  File "/home/vscode/.local/lib/python3.10/site-packages/mkdocs/localization.py", line 16, in <module>
    from babel.support import NullTranslations, Translations
  File "/home/vscode/.local/lib/python3.10/site-packages/babel/support.py", line 23, in <module>
    from babel.dates import format_date, format_datetime, format_time, format_timedelta
  File "/home/vscode/.local/lib/python3.10/site-packages/babel/dates.py", line 34, in <module>
    from babel import localtime
  File "/home/vscode/.local/lib/python3.10/site-packages/babel/localtime/__init__.py", line 41, in <module>
    LOCALTZ = get_localzone()
  File "/home/vscode/.local/lib/python3.10/site-packages/babel/localtime/__init__.py", line 37, in get_localzone
    return _get_localzone()
  File "/home/vscode/.local/lib/python3.10/site-packages/babel/localtime/_unix.py", line 49, in _get_localzone
    tzinfo = _get_tzinfo(zone_name)
  File "/home/vscode/.local/lib/python3.10/site-packages/babel/localtime/_helpers.py", line 21, in _get_tzinfo
    return zoneinfo.ZoneInfo(tzenv)
  File "/usr/lib/python3.10/zoneinfo/_tzpath.py", line 67, in find_tzfile
    _validate_tzfile_path(key)
  File "/usr/lib/python3.10/zoneinfo/_tzpath.py", line 81, in _validate_tzfile_path
    raise ValueError(
ValueError: ZoneInfo keys may not be absolute paths, got: /UTC

Yea I got the ZoneInfo error recently too and upvoted that workaround earlier 😅  -- there's almost certainly some dep somewhere causing that (which would not be the first time I've had a random TZ build error pop up in Python due to deps). I do have a branch to add a Poetry config and poetry.lock to the repo that may help prevent such a thing.

Ah hitting the DCO issue https://github.com/dcoapp/app/issues/211; it was just resolved, needs a new commit to re-trigger

repo: argoproj/argo-workflows


text:
feat: added support for GRPC_MESSAGE_SIZE env var

…MaxGRPCMessageSize for argo-server
Checklist:

[ ] My organization is added to USERS.md.

Tips:

Your PR needs to pass the required checks before it can be approved. If the check is not required (e.g. E2E tests) it does not need to pass
Sign-off your commits to pass the DCO check: git commit --signoff.
Run make pre-commit -B to fix codegen or lint problems.
Say how how you tested your changes. If you changed the UI, attach screenshots.

looks good, I've suggested a couple of ways to simplify

@alexec, I followed your suggestions and updated the PR.
Thank you!

LGTM!

@dpeer6 I've reverted the merge because it merged to release-3.1. That was my mistake. PRs should be based off master. Please can you raise a new PR based on master?

@alexec ok I will raise a new PR.

@alexec ok I will raise a new PR.

This was completed in #6420