Plex for Web - h3 (Decode) Error

Server Version#: 1.24.5.5173-8dcc73a59
Player Version#: 4.70.0

Hey Guys

Moving my system to use Quick Sync running on Plex as a container within Centos 8 (also tried Ubuntu 20.04).

On 4K HVEC content HDR 10 - whilst using the Plex Web app on my Chrome browser, I am getting the video playing for anyting between 5 - 35 seconds before it stops with “h3 (Decode” error code. Transcoding down to 1080p or any other bitrate.

Issue doesn’t persist when direct play, obviously.
Issue doesn’t occur when streaming to iOS app whilst transcoding.
Issue doesn’t occur when transcoding 1080 content.

Log files do not really state anything untoward. I can see transcoding happening, and the client requesting the parts up until it appears as if the client stops requesting. Transcoding still carries on the server. It’s the strangest thing ever.

Also, there is little to no detail on h3 (decode) errors across the web. Help!

Here are the logs from the Plex Server. You can see the client happily asking for transcoded segments, before getting lost in the ether… I don’t know where to start to look.

I’ve tried disabling security.
Accessing the plex server locally.
All the same.

Nov 20, 2021 18:17:14.972 [0x7fc0f81cdb38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Asked for segment 208 from session.
Nov 20, 2021 18:17:15.189 [0x7fc0f7c2eb38] Debug — [Transcode] Transcoder segment range: 181 - 208 (208)
Nov 20, 2021 18:17:15.190 [0x7fc0facebb38] Debug — [Transcode] Transcoder segment range: 181 - 209 (208)
Nov 20, 2021 18:17:15.272 [0x7fc0f81cdb38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Returning segment 208 from session
Nov 20, 2021 18:17:15.273 [0x7fc0f81cdb38] Debug — Content-Length of /transcode/Transcode/Sessions/plex-transcode-4pqqkt4une61n3l44e6nr89q-3cf7cf62-4c64-429f-b45d-4fa303fae5f6/media-00208.ts is 7181976 (of total: 7181976).
Nov 20, 2021 18:17:15.335 [0x7fc0fbb9bb38] Debug — Completed: [192.168.50.69:61809] 200 GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00208.ts (17 live) TLS GZIP 363ms 7181976 bytes (pipelined: 45)
Nov 20, 2021 18:17:15.335 [0x7fc0fbb9bb38] Debug — Removed transcode data consumer, active count 1 => 0
Nov 20, 2021 18:17:15.371 [0x7fc0faf75b38] Debug — Request: [192.168.50.69:61809 (Subnet)] GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00209.ts (17 live) TLS GZIP Signed-in
Nov 20, 2021 18:17:15.371 [0x7fc0faf75b38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Asked for segment 209 from session.
Nov 20, 2021 18:17:15.604 [0x7fc0fb43ab38] Debug — [Transcode] Transcoder segment range: 181 - 209 (209)
Nov 20, 2021 18:17:15.604 [0x7fc0fb46fb38] Debug — [Transcode] Transcoder segment range: 181 - 210 (209)
Nov 20, 2021 18:17:15.672 [0x7fc0faf75b38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Returning segment 209 from session
Nov 20, 2021 18:17:15.672 [0x7fc0faf75b38] Debug — Content-Length of /transcode/Transcode/Sessions/plex-transcode-4pqqkt4une61n3l44e6nr89q-3cf7cf62-4c64-429f-b45d-4fa303fae5f6/media-00209.ts is 8555504 (of total: 8555504).
Nov 20, 2021 18:17:15.735 [0x7fc0fbbbeb38] Debug — Completed: [192.168.50.69:61809] 200 GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00209.ts (17 live) TLS GZIP 364ms 8555504 bytes (pipelined: 46)
Nov 20, 2021 18:17:15.735 [0x7fc0fbbbeb38] Debug — Removed transcode data consumer, active count 1 => 0
Nov 20, 2021 18:17:15.798 [0x7fc0f7c2eb38] Debug — Request: [192.168.50.69:61809 (Subnet)] GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00210.ts (17 live) TLS GZIP Signed-in
Nov 20, 2021 18:17:15.799 [0x7fc0f7c2eb38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Asked for segment 210 from session.
Nov 20, 2021 18:17:16.036 [0x7fc0f81cdb38] Debug — [Transcode] Transcoder segment range: 181 - 210 (210)
Nov 20, 2021 18:17:16.037 [0x7fc0faf52b38] Debug — [Transcode] Transcoder segment range: 181 - 211 (210)
Nov 20, 2021 18:17:16.099 [0x7fc0f7c2eb38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Returning segment 210 from session
Nov 20, 2021 18:17:16.099 [0x7fc0f7c2eb38] Debug — Content-Length of /transcode/Transcode/Sessions/plex-transcode-4pqqkt4une61n3l44e6nr89q-3cf7cf62-4c64-429f-b45d-4fa303fae5f6/media-00210.ts is 9241328 (of total: 9241328).
Nov 20, 2021 18:17:16.165 [0x7fc0fbb9bb38] Debug — Completed: [192.168.50.69:61809] 200 GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00210.ts (17 live) TLS GZIP 367ms 9241328 bytes (pipelined: 47)
Nov 20, 2021 18:17:16.165 [0x7fc0fbb9bb38] Debug — Removed transcode data consumer, active count 1 => 0
Nov 20, 2021 18:17:16.241 [0x7fc0fb43ab38] Debug — Request: [192.168.50.69:61809 (Subnet)] GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00211.ts (17 live) TLS GZIP Signed-in
Nov 20, 2021 18:17:16.241 [0x7fc0fb43ab38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Asked for segment 211 from session.
Nov 20, 2021 18:17:16.378 [0x7fc0fb46fb38] Debug — Request: [[::1]:49522 (Loopback)] GET /identity (18 live) Signed-in
Nov 20, 2021 18:17:16.378 [0x7fc0fbbbeb38] Debug — Completed: [[::1]:49522] 200 GET /identity (18 live) 0ms 398 bytes (pipelined: 1)
Nov 20, 2021 18:17:16.503 [0x7fc0faf75b38] Debug — [Transcode] Transcoder segment range: 181 - 211 (211)
Nov 20, 2021 18:17:16.503 [0x7fc0faf75b38] Debug — [Transcode] Transcoder segment range: 181 - 212 (211)
Nov 20, 2021 18:17:16.542 [0x7fc0fb43ab38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Returning segment 211 from session
Nov 20, 2021 18:17:16.542 [0x7fc0fb43ab38] Debug — Content-Length of /transcode/Transcode/Sessions/plex-transcode-4pqqkt4une61n3l44e6nr89q-3cf7cf62-4c64-429f-b45d-4fa303fae5f6/media-00211.ts is 8012560 (of total: 8012560).
Nov 20, 2021 18:17:16.591 [0x7fc0fbb9bb38] Debug — Completed: [192.168.50.69:61809] 200 GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00211.ts (17 live) TLS GZIP 350ms 8012560 bytes (pipelined: 48)
Nov 20, 2021 18:17:16.592 [0x7fc0fbb9bb38] Debug — Removed transcode data consumer, active count 1 => 0
Nov 20, 2021 18:17:16.653 [0x7fc0fb0c6b38] Debug — Request: [192.168.50.69:61809 (Subnet)] GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00212.ts (17 live) TLS GZIP Signed-in
Nov 20, 2021 18:17:16.653 [0x7fc0fb0c6b38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Asked for segment 212 from session.
Nov 20, 2021 18:17:16.921 [0x7fc0f7c2eb38] Debug — [Transcode] Transcoder segment range: 181 - 212 (212)
Nov 20, 2021 18:17:16.922 [0x7fc0fb46fb38] Debug — [Transcode] Transcoder segment range: 181 - 213 (212)
Nov 20, 2021 18:17:16.954 [0x7fc0fb0c6b38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Returning segment 212 from session
Nov 20, 2021 18:17:16.954 [0x7fc0fb0c6b38] Debug — Content-Length of /transcode/Transcode/Sessions/plex-transcode-4pqqkt4une61n3l44e6nr89q-3cf7cf62-4c64-429f-b45d-4fa303fae5f6/media-00212.ts is 7993384 (of total: 7993384).
Nov 20, 2021 18:17:17.023 [0x7fc0fbb9bb38] Debug — Completed: [192.168.50.69:61809] 200 GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00212.ts (17 live) TLS GZIP 370ms 7993384 bytes (pipelined: 49)
Nov 20, 2021 18:17:17.024 [0x7fc0fbb9bb38] Debug — Removed transcode data consumer, active count 1 => 0
Nov 20, 2021 18:17:17.062 [0x7fc0facebb38] Debug — Request: [192.168.50.69:61809 (Subnet)] GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00213.ts (17 live) TLS GZIP Signed-in
Nov 20, 2021 18:17:17.062 [0x7fc0facebb38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Asked for segment 213 from session.
Nov 20, 2021 18:17:17.349 [0x7fc0fb43ab38] Debug — [Transcode] Transcoder segment range: 181 - 213 (213)
Nov 20, 2021 18:17:17.349 [0x7fc0faf52b38] Debug — [Transcode] Transcoder segment range: 181 - 214 (213)
Nov 20, 2021 18:17:17.363 [0x7fc0facebb38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Returning segment 213 from session
Nov 20, 2021 18:17:17.363 [0x7fc0facebb38] Debug — Content-Length of /transcode/Transcode/Sessions/plex-transcode-4pqqkt4une61n3l44e6nr89q-3cf7cf62-4c64-429f-b45d-4fa303fae5f6/media-00213.ts is 9869436 (of total: 9869436).
Nov 20, 2021 18:17:17.438 [0x7fc0fbb9bb38] Debug — Completed: [192.168.50.69:61809] 200 GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00213.ts (17 live) TLS GZIP 376ms 9869436 bytes (pipelined: 50)
Nov 20, 2021 18:17:17.438 [0x7fc0fbb9bb38] Debug — Removed transcode data consumer, active count 1 => 0
Nov 20, 2021 18:17:17.510 [0x7fc0f7c2eb38] Debug — Request: [192.168.50.69:61809 (Subnet)] GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00214.ts (17 live) TLS GZIP Signed-in
Nov 20, 2021 18:17:17.511 [0x7fc0f7c2eb38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Asked for segment 214 from session.
Nov 20, 2021 18:17:17.777 [0x7fc0faf75b38] Debug — [Transcode] Transcoder segment range: 181 - 214 (214)
Nov 20, 2021 18:17:17.778 [0x7fc0f81cdb38] Debug — [Transcode] Transcoder segment range: 181 - 215 (214)
Nov 20, 2021 18:17:17.811 [0x7fc0f7c2eb38] Debug — [Transcode/4pqqkt4une61n3l44e6nr89q] Returning segment 214 from session
Nov 20, 2021 18:17:17.811 [0x7fc0f7c2eb38] Debug — Content-Length of /transcode/Transcode/Sessions/plex-transcode-4pqqkt4une61n3l44e6nr89q-3cf7cf62-4c64-429f-b45d-4fa303fae5f6/media-00214.ts is 8666612 (of total: 8666612).
Nov 20, 2021 18:17:17.867 [0x7fc0fbbbeb38] Debug — Completed: [192.168.50.69:61809] 200 GET /video/:/transcode/universal/session/4pqqkt4une61n3l44e6nr89q/base/00214.ts (16 live) TLS GZIP 356ms 8666612 bytes (pipelined: 51)
Nov 20, 2021 18:17:17.867 [0x7fc0fbbbeb38] Debug — Removed transcode data consumer, active count 1 => 0
Nov 20, 2021 18:17:18.212 [0x7fc0facebb38] Debug — [Transcode] Transcoder segment range: 181 - 215 (215)
Nov 20, 2021 18:17:18.212 [0x7fc0facebb38] Debug — [Transcode] Transcoder segment range: 181 - 216 (215)
Nov 20, 2021 18:17:18.601 [0x7fc0f81cdb38] Debug — [Transcode] Transcoder segment range: 181 - 216 (216)
Nov 20, 2021 18:17:18.602 [0x7fc0f7c2eb38] Debug — [Transcode] Transcoder segment range: 181 - 217 (216)
Nov 20, 2021 18:17:19.027 [0x7fc0faf52b38] Debug — [Transcode] Transcoder segment range: 181 - 217 (217)
Nov 20, 2021 18:17:19.027 [0x7fc0fb46fb38] Debug — [Transcode] Transcoder segment range: 181 - 218 (217)
Nov 20, 2021 18:17:19.426 [0x7fc0faf75b38] Debug — [Transcode] Transcoder segment range: 181 - 218 (218)
Nov 20, 2021 18:17:19.426 [0x7fc0f81cdb38] Debug — [Transcode] Transcoder segment range: 181 - 219 (218)
Nov 20, 2021 18:17:19.819 [0x7fc0fb46fb38] Debug — [Transcode] Transcoder segment range: 181 - 219 (219)

MODERATOR EDIT: </> formatting applied

May I see the full ZIP file which contains this? (start playback, let it run until it stops, stop playback, Download Logs)

It’s not possible to diagnose from this snippet.

Plex Media Server Logs_2021-11-20_20-17-00.zip (1.0 MB)

Hey there, here are the logs.

Looking at your account,

I see 2 servers both with the same name.

Your logs are complaining about the cert you’re trying to use

Nov 20, 2021 17:50:17.690 [0x7fc0fb01eb38] ERROR - Error issuing curl_easy_perform(handle): 60
Nov 20, 2021 17:50:17.690 [0x7fc0fb01eb38] WARN - HTTP error requesting GET https://192-168-50-203.fcfedf88b5f7488bad39913d2fa55e2f.plex.direct:32400 (60, SSL peer certificate or SSH remote key was not OK) (SSL: no alternative certificate subject name matches target host name '192-168-50-203.fcfedf88b5f7488bad39913d2fa55e2f.plex.direct')

You need to add your cert to Plex before you refer to it.

The P12 must include Cert, Key, and Intermediate CA.

installed plex.direct cert
Nov 20, 2021 18:21:24.895 [0x7fc0fbb9bb38] DEBUG - CERT: incomplete TLS handshake from [::ffff:192.168.50.69]:64238: sslv3 alert certificate unknown
Nov 20, 2021 18:21:25.779 [0x7fc0faf52b38] DEBUG - Request: [[::1]:50006 (Loopback)] GET /identity (6 live) Signed-in
Nov 20, 2021 18:21:25.779 [0x7fc0fbbbeb38] DEBUG - Completed: [[::1]:50006] 200 GET /identity (6 live) 0ms 398 bytes (pipelined: 1)
Nov 20, 2021 18:21:30.037 [0x7fc0fbbbeb38] DEBUG - handleStreamRead code 104: Connection reset by peer
Nov 20, 2021 18:21:30.037 [0x7fc0fbbbeb38] DEBUG - NotificationStream: Removing because of error
Nov 20, 2021 18:21:30.037 [0x7fc0fbbbeb38] DEBUG - Completed after connection close: [192.168.50.69:52211] -3 GET /:/websockets/notifications (5 live) TLS GZIP 1649484ms 397556 bytes
Nov 20, 2021 18:21:30.870 [0x7fc0faf75b38] DEBUG - Request: [[::1]:50008 (Loopback)] GET /identity (4 live) Signed-in
Nov 20, 2021 18:21:30.870 [0x7fc0fbbbeb38] DEBUG - Completed: [[::1]:50008] 200 GET /identity (4 live) 0ms 398 bytes (pipeli

Everything else in your logs is cascade failure from this.

Banging on the identity endpoint is ill advised.

I’m somewhat lost - I thought I understood, but I may be a bit misguided.

This is a new server within the same LAN as existing, but on a different host.

I’m using docker and caddy as reverse proxy. So I’ve never had to install a cert before and didn’t think I would need to ? I port forward to get remote access enabling so I don’t have to relay and both of those are set up correctly. Would you be able to point me in the right direction?

Hey @ChuckPa

I’ve taken TLS and remote access away from the picture - we’re still not working, can you help me out?

I’ve got a new set of logs.

Accessing the server totally locally on it’s own bundled web player on it’s local address with Network security disabled - http://192.168.50.203:32400 - i’m still getting the issue when transcoding 4k content HEVC and HDR 10.

Can I PM you new logs for your expertise?

I had this issue, playing 4k streams using a Chrome client. I found it was caused by the following setting:
Settings>>Plex Web>Debug>>[Show Advanced]>>Use alternate streaming protocol for video playback.

I had the same problem and this has fixed it :slight_smile: thanks Spin-maser [quote=“Spin-master, post:8, topic:759060, full:true”]
I had this issue, playing 4k streams using a Chrome client. I found it was caused by the following setting:
Settings>>Plex Web>Debug>>[Show Advanced]>>Use alternate streaming protocol for video playback.
[/quote]

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.