[ViewStateSync] State failed with code 400

Server Version#: 1.43.0.10492
Player Version#: All

My watched state sync has been busted for a bit over a week now. Happening for any client, but only on one server. Media I’ve watched on server A shows as unwatched on my profile activity and server B, but watching on server B will show as watched on A and my profile. Manually marking a movie I saw at the cinema shows the activity in my profile.

Debug logs:

Feb 21, 2026 00:47:15.517 [132505540864824] DEBUG - [Req#25927d/ViewStateSync] Starting
Feb 21, 2026 00:47:15.517 [132505540864824] DEBUG - [Req#25927d/ViewStateSync] Got token for user 1 (IainND)
Feb 21, 2026 00:47:15.517 [132505540864824] DEBUG - [Req#25927d/ViewStateSync/HCl#395b] HTTP requesting GET https://plex.tv/api/v2/server/users/677177/view_state_sync
Feb 21, 2026 00:47:15.787 [132505810225976] DEBUG - [HttpClient/HCl#395a] HTTP/2.0 (0.3s) 200 response from GET https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage.tmdb.org%2Ft%2Fp%2Foriginal%2F2P5H8cxXcybrs9LtTLRhLjhpwGN.jpg (reused)
Feb 21, 2026 00:47:15.793 [132505594379064] DEBUG - [UltraBlurProcessor] Generated for item 100111 in 302 ms.
Feb 21, 2026 00:47:15.797 [132505580260152] DEBUG - [HCl#395c] HTTP requesting GET https://image.tmdb.org/t/p/original/2P5H8cxXcybrs9LtTLRhLjhpwGN.jpg
Feb 21, 2026 00:47:16.887 [132505810225976] DEBUG - [HttpClient/HCl#395b] HTTP/1.1 (1.4s) 200 response from GET https://plex.tv/api/v2/server/users/677177/view_state_sync
Feb 21, 2026 00:47:16.888 [132505588050744] DEBUG - [Req#25927d/ViewStateSync] Starting for user 1
Feb 21, 2026 00:47:16.888 [132505588050744] DEBUG - [Req#25927d/ViewStateSync] Sending state
Feb 21, 2026 00:47:16.890 [132505588050744] DEBUG - [Req#25927d/ViewStateSync] 87 states to send
Feb 21, 2026 00:47:16.891 [132505588050744] DEBUG - [Req#25927d/ViewStateSync/HCl#395d] HTTP requesting POST https://scrobbles.plex.tv/state
Feb 21, 2026 00:47:17.586 [132505552886584] DEBUG - Library Updater: Requested that section 1 be updated, force=0, subdir=/data/media/tv/Powerless/Season 01 iTunes=0
Feb 21, 2026 00:47:17.586 [132505552886584] DEBUG - Library Updater: Queueing section 1
Feb 21, 2026 00:47:17.586 [132505717205816] DEBUG - Activity: registered new activity f5fa7f90-6134-4d0b-8eac-41bb853c3f12 - “Scanning”
Feb 21, 2026 00:47:17.587 [132505717205816] DEBUG - Scanning section 1
Feb 21, 2026 00:47:17.587 [132505717205816] DEBUG - Activity: updated activity f5fa7f90-6134-4d0b-8eac-41bb853c3f12 - completed 0.0% - Scanning TV
Feb 21, 2026 00:47:17.587 [132505717205816] DEBUG - Job was already killed, not killing again.
Feb 21, 2026 00:47:17.600 [132505810225976] DEBUG - [HttpClient/HCl#395d] HTTP/2.0 (0.7s) 400 response from POST https://scrobbles.plex.tv/state
Feb 21, 2026 00:47:17.600 [132505588050744] DEBUG - [Req#25927d/ViewStateSync] State failed with code 400
Feb 21, 2026 00:47:17.602 [132505588050744] DEBUG - [Req#25927d/ViewStateSync] Exiting view sync due permanent error

My guess is it’s a problem with Sportarr’s custom metadata provider. Verbose log says this is the first item it’s trying to send:

{“guid”:“tv.plex.agents.custom.sportarr.sports://season/sportarr-season-4711-2026”,“viewedAt”:1770855537000,“viewState”:“complete”}

But removing the library that uses this provider hasn’t helped.

Issue persists after restarting the container, rebooting, or turning the sync off and on.

Also sticks around when I fully remove the metadata agent and restart the container.

I’ve manually checked all the non-Sportarr items, they’re all valid Plex entries, and the issue sticks around after I manually mark them as watched directly, not through any server.

Number if items to sync has been going up and down, so something’s getting through.

Really would appreciate some advice. Does anybody know how to force sync items through the API?

Latest list of items is:

[ViewStateSync]
Sending:
{"items":
	[
		{
			"guid":"plex://episode/5d9c1276705e7a001e75f09a",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c1276705e7a001e75f0ba",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c1277cb3ffa001f1d97ef",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12773c3f87001f3bf8f5",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12773c3f87001f3bf8e5",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12763c3f87001f3bf8e1",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12773c3f87001f3bf8ed",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12773c3f87001f3bf8f1",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12763c3f87001f3bf8dd",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12773c3f87001f3bf8fd",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12773c3f87001f3bf8e9",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b5a",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12773c3f87001f3bf8f9",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b76",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b62",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b7a",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b6a",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b66",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b5e",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b72",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12770aaccd001f914b6e",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12772df347001e41c3a9",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12772df347001e41c3a5",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c1277ba2e21001f1b3793",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12772df347001e41c3b5",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c12772df347001e41c3b9",
			"viewedAt":1771391783000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/65dcd1f7883785f5c63798ec",
			"viewedAt":1771394371000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/65dcd1f7883785f5c63798d2",
			"viewedAt":1771395639000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/65dcd1f6883785f5c63798b9",
			"viewedAt":1771396998000,
			"viewState":"complete"
		},
		{
			"guid":"plex://movie/5d7768337e9a3c0020c6c45b",
			"viewedAt":1771582996000,
			"viewState":"complete"
		},
		{
			"guid":"plex://movie/5d77686f51dd69001fe0c1a7",
			"viewedAt":1771584837000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/621e354a49b69d3844880c1c",
			"viewedAt":1771585161000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/65dcd1f5883785f5c637989f",
			"viewedAt":1771636463000,
			"viewState":"complete"
		},
		{
			"guid":"plex://movie/5d7768325af944001f1f9433",
			"viewedAt":1771672920000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/65dcd1f4883785f5c6379883",
			"viewedAt":1771672932000,
			"viewState":"complete"
		},
		{
			"guid":"plex://season/681b0807903c3546fdcf6007",
			"viewedAt":1771674428000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/681b0808903c3546fdcf6008",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/681b0808903c3546fdcf6009",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/681b0809903c3546fdcf600a",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/681b0809903c3546fdcf600b",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/681b0809903c3546fdcf600c",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/681b0809903c3546fdcf600d",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/681b0809903c3546fdcf600e",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/681b0809903c3546fdcf600f",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/68400e6ff23680ca9a4b3e4a",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/68400e6ff23680ca9a4b3e4c",
			"viewedAt":1771674428000,
			"viewState":"complete",
			"isBulk":true
		},
		{
			"guid":"plex://episode/5d9c0c1e2df347001e3d377e",
			"viewedAt":1771674542000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/5d9c0c1e4eefaa001f5fec0e",
			"viewedAt":1771674551000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/603412d5e83abe002c120a1b",
			"viewedAt":1771674559000,
			"viewState":"complete"
		},
		{
			"guid":"tv.plex.agents.custom.sportarr.sports://season/sportarr-season-4711-2026",
			"viewedAt":1771712633000,
			"viewState":"unplayed"
		},
		{
			"guid":"tv.plex.agents.custom.sportarr.sports://episode/sportarr-episode-2407277",
			"viewedAt":1771712633000,
			"viewState":"unplayed",
			"isBulk":true
		},
		{
			"guid":"tv.plex.agents.custom.sportarr.sports://episode/sportarr-episode-2407278",
			"viewedAt":1771712633000,
			"viewState":"unplayed",
			"isBulk":true
		},
		{
			"guid":"plex://episode/65dcd1f3883785f5c63797f9",
			"viewedAt":1771717064000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/65dcd1f3883785f5c63797dd",
			"viewedAt":1771718466000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/65dcd1f2883785f5c63797c5",
			"viewedAt":1771727396000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/5d9c0c1e2192ba001f333ef2",
			"viewedAt":1771747416000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/5d9c0c1e2192ba001f333ed7",
			"viewedAt":1771748147000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/65dcd1f1883785f5c63797a4",
			"viewedAt":1771749180000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/697db66cb033abc43e3df476",
			"viewedAt":1771231015000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/698f0cf571fa3c5c66b71d2d",
			"viewedAt":1771232300000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/698f0cf571fa3c5c66b71d2e",
			"viewedAt":1771401075000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/698f0cf571fa3c5c66b71d31",
			"viewedAt":1771577225000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/698f0cf571fa3c5c66b71d2f",
			"viewedAt":1771574714000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/698f0cf571fa3c5c66b71d30",
			"viewedAt":1771575936000,
			"viewState":"complete"
		},
		{
			"guid":"plex://episode/69977c6080d8cdf970b1ede5",
			"viewedAt":1771744598000,
			"viewState":"complete"
		}
	],
	"user":677177
}

I fixed it.