Chromecast Ultra and 2nd Gen - Error code: h4 (Not Supported)

Update 2020/10/20 - THIS ISSUE HAS BEEN GOING ON FOR ALMOST 10 MONTHS NOW.
If you are new or old to this long and frustrating thread, please tweet/retweet about this like I have here because it seems like we have to shame Plex into fixing and prioritising this issue of making Chromecasts work.

Also, please be sure to like this first post as it will show Plex that this is an issue. Respond to this thread to keep the issue alive as long as it is an issue.

Server Version#: 1.18.8.2527
Player Version#: Chromecast Ultra firmware version 1.42.183786

Logging this as a new issue, but I’m hoping that I can find a solution.
I’ve been trying to play videos, but I am getting h4 errors.

When I try to cast a video, it looks like its about to play, the wheel turns around for a few minutes then error.

I’ve been getting a strange issue where H264 MKV files don’t play with recent versions, I keep getting an Error code: h4 (Not Supported).

Also, is there a way to force transcoding?

Content of the XML of one of the affected files:

<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="7" librarySectionTitle="TV Shows" librarySectionUUID="9f617fa9-d060-4fc2-b2f9-2d404cba1ff2" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1583877364">
<Video ratingKey="32777" key="/library/metadata/32777" parentRatingKey="32776" grandparentRatingKey="32775" guid="com.plexapp.agents.thetvdb://349358/1/1?lang=en" parentGuid="com.plexapp.agents.thetvdb://349358/1?lang=en" grandparentGuid="com.plexapp.agents.thetvdb://349358?lang=en" type="episode" title="Keep on Truckin'" grandparentKey="/library/metadata/32775" parentKey="/library/metadata/32776" librarySectionTitle="TV Shows" librarySectionID="7" librarySectionKey="/library/sections/7" grandparentTitle="The Conners" parentTitle="Season 1" contentRating="TV-PG" summary="A sudden turn of events forces the Conners to face the daily struggles of life in Lanford in a way they never have before." index="1" parentIndex="1" year="2018" thumb="/library/metadata/32777/thumb/1584369224" art="/library/metadata/32775/art/1584369224" parentThumb="/library/metadata/32776/thumb/1584369224" grandparentThumb="/library/metadata/32775/thumb/1584369224" grandparentArt="/library/metadata/32775/art/1584369224" grandparentTheme="/library/metadata/32775/theme/1584369224" duration="1321600" originallyAvailableAt="2018-10-16" addedAt="1584368202" updatedAt="1584369224">
<Media id="37941" duration="1321600" bitrate="8382" width="1920" height="1080" aspectRatio="1.78" audioChannels="6" audioCodec="eac3" videoCodec="h264" videoResolution="1080" container="mkv" videoFrameRate="24p" videoProfile="high">
<Part accessible="1" exists="1" id="37948" key="/library/parts/37948/1539734400/file.mkv" duration="1321600" file="/tv/SERIES/The Conners/Season 01/The Conners - S01E01 - Keep on Truckin' WEBDL-1080p.mkv" size="1384726029" container="mkv" videoProfile="high">
<Stream id="86566" streamType="1" default="1" codec="h264" index="0" bitrate="8382" bitDepth="8" chromaLocation="left" chromaSubsampling="4:2:0" codedHeight="1088" codedWidth="1920" colorPrimaries="bt709" colorRange="tv" colorSpace="bt709" colorTrc="bt709" frameRate="23.976" hasScalingMatrix="0" height="1080" level="40" profile="high" refFrames="4" scanType="progressive" width="1920" displayTitle="1080p (H.264)"/>
<Stream id="86567" streamType="2" selected="1" default="1" codec="eac3" index="1" channels="6" language="English" languageCode="eng" audioChannelLayout="5.1(side)" samplingRate="48000" displayTitle="English (EAC3 5.1)"/>
<Stream id="86568" streamType="3" codec="srt" index="2" language="English" languageCode="eng" title="SDH" displayTitle="English (SRT)"/>
</Part>
</Media>
<Writer id="43595" filter="writer=43595" tag="Bruce Helford"/>
<Writer id="34603" filter="writer=34603" tag="Bruce Rasmussen"/>
<Writer id="43596" filter="writer=43596" tag="Dave Caplan"/>
<Extras size="0"> </Extras>
</Video>
</MediaContainer>

Can anyone help?

23 Likes

Hi,

I’m seeing this error as well frequently since a couple of weeks now when I try to start playing content on my chromecast.

However, giving it a second (or third) try usually plays the content quite well then.

In my eyes, this points to a problem with initiating the stream between the plex server and the chromecast. And since this is not a permanent issue, it seems to be some form of timeout issue, as I have never had an issue playing any of the content after giving it some tries.

As I’ve no clue on the technical background regarding the communication protocols between the chromecast and the plex server, I can’t contribute to a technical analysis, besides describing what I observe.

For your reference:
Chromecast-Firmwareversion: 1.42.172094
Plex Server / Synology: 1.19.1.2630

Kind regards

To my understanding, this is an issue with the chromecast profiles and support for different formats and codecs, which differ for different chromecasts.

This could be fixed by defining profiles for each chromecast, as this is documented, and then it would make it straightforward to know if your content and codec is supported by the target chromecast.

As it is right now, they have a single profile for all chromecasts, and so it ends up as a pot luck if it works. In your case, it retries enough times to work, in my case (and many others in these forums) it just never works for certain media.

This is ridiculous, as its proven to work on competing systems (Looking at you, Emby).

This particular issue makes me deeply sad. I’m a great supporter of Plex and have been for many many years, have a lifetime Plexpass and I promote the use of Plex to friends, colleagues and such. I’m also almost exclusively using Chromecasts around my home, and this issue renders many things unplayable. As you’ve noted, it also is an issue that seems to be more and more even for the same media in some cases.

In recent months, I’m starting to feel that Plex seem to be uninterested in fixing this, so I need to replace my Chromecasts, re-encode all my content or figure out a different solution.

I’ve started using Emby a lot more recently, and it works the same as Plex. I would have never even have considered it just a few months ago. Emby works FLAWLESSLY with the same exact media content, and the same exact Chromecasts without modification.

This trajectory that Plex is on, is the same one that Boxee took, and look where they are now. Boxee forgot about their core audience and community and focused on signing content deals with online streamers. I loved Boxee too, Plex replaced them.

If any Plex dev reads this (Press X for doubt), prioritise fixing Chromecasts. Its a real issue.

15 Likes

I too am now looking to start a love affair with Emby. And Plex is forcing me to.
The interface is more polished on Plex, but at least Emby “just works”.

1 Like

Hey guys,

This is the first time I have posted on here but I have been unable to answer this myself until now.
It may not work for you but I turned off hardware acceleration and it fixed it instantly for me.
I don’t know why, but a movie wasn’t working, turned off hardware acceleration and tried streaming to my Chromecast again and it worked first time.

Hello
I just wanted to post I am having the exact same issue. I have gen2 non ultra chromecasts in my house

Plex pass subscriber , Server Version 1.19.1.2645 (Windows)

These files played fine in the past via Chomecast for me. And currently work on IOS, Android and through a web browser

-Ive tried turning off and on hardware acceleration,
-Setting secured connections from required to disabled
-Tested disabling direct play and direct stream,
-Changing Allow Fallback to Insecure Connections from Never to always.
-Tested with the Force multi-channel audio support both on and off.
-Tired to Optimized the Media for TV

I hope plex will look into a solution for this soon. I myself use chromecasts on all my Tv’s, I love plex but an ongoing incompatibility with Chromecast will force me to look at other solutions as well

Cheers
Chris

2 Likes

Exactly what plonka2000 said. Also, workarounds for this problem will not cut it. It needs to be permanently fixed, quickly. For me, Plex is currently a nice car without wheels. So currently I’m driving an emby and it’s actually a great substitute for Plex. Mainly because it just works.

2 Likes

I’ve had the same issue for a month or two now and it’s really getting old fast. My work-around is to start the video on my Android, then cast. I’m hoping for a fix from Plex soon.

Oh, thought I’d add that my content is HEVC/h.265. This error occurs on old content that used to work as well.

2 Likes

I have the same issue, and have for a couple of years. Looking at this thread, running all the way back to 2017, and the fact the Plex keeps adding features, but not fixing issues makes (as a plexpass holder) me sad that the developers loose touch with their users which seems to happen so often. Don’t get me wrong, I can’t code, and am very grateful for how good Plex is and all the work the devs do put in, but don’t overlook an issue that is continually talked about by the end users, especially as there are other solutions like Emby & subsonic that do stream everything.not as pretty, but they work, which is paramount.

1 Like

This issue has been bothering me for a while. H265 content with Nvidia transcoding to H264 for 2nd gen Chromecast. The annoying fix is to play on my phone for a few seconds and then cast. Chromecast will load at 0:01 instead of 0:00 and this usually plays without errors. Plex devs, is that a helpful hint?

2 Likes

Im having a similar issue. I have tested this with a first gen and second gen chromecast. It only seems to occur when casting from my phone and not if i cast from my desktop. For me its intermittent. Eventually the casting does work if i try enough.

From my plex media server.log on a failed stream.

May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] [Transcoder] Video (start) options
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] Direct Play: false
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] Protocol: http
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] Player: html
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] [PDE] Player decision
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] X-Plex-Chunked: 1
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] copyts: 1
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] X-Plex-Client-Profile-Extra: add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.bitrate&value=2000&replace=true)+add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=42&replace=true)+add-limitation(scope=videoAudioCodec&scopeName=aac&type=upperBound&name=audio.channel&value=2)
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] subtitles: auto
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] offset: 0
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] session: zyrt6q9a5vgi7axb2yrm5v21
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] X-Plex-Session-Identifier: 9g7mgwmlt6yabc6zaiuuff2m
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] mediaBufferSize: 30720
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] directStreamAudio: 1
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] maxVideoBitrate: 2000
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] location: wan
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] audioBoost: 100
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] subtitleSize: 100
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] directStream: 1
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] directPlay: 0
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] fastSeek: 1
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] protocol: http
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] partIndex: 0
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] mediaIndex: 0
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] path: /library/metadata/74915
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] hasMDE: 1
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] [Transcoder] Video (start) options
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] videoResolution: 720
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] bitrate: 2000
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] useSoftSubtitles: true
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] canDirectStreamAudio: false
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] canDirectStreamVideo: false
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] canDirectPlay: false
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] canPlay: true
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] [MDE] Finished analysis of 1080 (mkv, h264, dca, 41, high)
May 05, 2020 21:03:32.729 [0x7fafd39cb700] WARN - [Chromecast] [MDE] Invalid profile property; bitrate: 14523 > 2000
May 05, 2020 21:03:32.729 [0x7fafd39cb700] WARN - [Chromecast] [MDE] Invalid profile property; bitrate: 14523 > 2000
May 05, 2020 21:03:32.729 [0x7fafd39cb700] INFO - [Chromecast] [MDE] Starting analysis of 1080 (mkv, h264, dca, 41, high)
May 05, 2020 21:03:32.898 [0x7faf52ffd700] WARN - [Chromecast] [Player] A critical HTML media error occurred: 4 (Not Supported); the player cannot recover
May 05, 2020 21:03:33.047 [0x7faf52ffd700] WARN - [Chromecast] NotSupportedError: Failed to load because no supported source was found.
May 05, 2020 21:03:33.047 [0x7faf52ffd700] WARN - [Chromecast] Did not move header “accept” to query string. This can result in an unnecessary OPTIONS preflight request.
May 05, 2020 21:03:33.522 [0x7faf52ffd700] ERROR - Unknown metadata type: folder
May 05, 2020 21:03:33.545 [0x7fafd19c7700] WARN - [Chromecast] Did not move header “accept” to query string. This can result in an unnecessary OPTIONS preflight request.

Thanks for this tip. This workaround works for me too.

I have had this same issue on and off for years now. Highly frustrating. We have 5 Chromecasts in the house. All 2nd gens. Family streaming from me recently had an uptick in the amount of this happening to them as well.

1 Like

Already tried to start streaming on phone first. Works flawlessly.
But in any way, casting for Chromecast do not work at all.

1 Like

I tried playing first on my android phone and then casting to my Chromecast over the weekend without success - it wouldn’t play. The only way I got it to work was by casting and quickly lowering the quality to force a transcode. This had the downside of playing the movie in a lower resolution.

1 Like

The workaround works for me too, this is WEIRD

2 Likes

Also affected by this, chromecast is useless with this bug.

1 Like

Well after playing around can I suggest anyone having problems try this:
Step 1. If you have a plex pass, first switch off hardware decode
Step 2. Everyone (with pass or without) go to the settings->transcoder->transcoder quality and set it to prefer higher quality encoding

This works for me under these conditions:
Version 1.17.0.1841
Local network
Chromecast generation 2

This issue I think falls between Google and Plex.
Google have been unifying their firmware.

I imagine this firmware broadcasts something for Plex to apply a profile.

So it’s Google’s fault and they should fix it?

Not entirely.

Plex have an “over ride” in place that ignores user created XML profiles.
This is a workaround but getting Google to fragment their unified firmware for one software program is never ever going to happen.

My frustration is that Plex are regularly dicking around with their software and this is a relatively simple thing for them to do. (I say that with zero knowledge of media streaming software)

If Chromecast detected check for custom profile.
They don’t have to do anything else. The community they rely on for ALL. Techsupport can provide the rest.

This feels like deliberate nerfing of a product rather than corporate ignorance.

2 years I think since the ultra stopped working properly.

I’d suck it up and buy the new Chromecast android TV stick but until I know it will run properly I’m not even entertaining the idea.
It is a Chromecast ultra at its core and it could run into the same profile.

Really frustrating. I went from a ghetto htpc to a home server and Chromecast. It was a nice clean solution and a revelation in simplicity. I. Was worried about loosing the bare metal control I had over a hard wired htpc but it all worked so well. Until it didn’t.

I do feel aggrieved because the hardware is and always has been capable.

1 Like

I am pretty much in the same place.

Just spent hundreds of euros and dozens of hours to get the server up to spec, with 32GB ram, SSD for library, new CPU, GPU 1050Ti.

While streaming to wired Chromecast Ultra, I started seeing hundreds of these in a single movie, details below.

[Chromecast] Did not move header "accept" to query string. This can result in an unnecessary OPTIONS preflight request.

Than buffering started and Plex crashed.

The problem is totally random, fixed by rebooting Chromecast, but shows up constantly

That is SO disappointing… why is Plex not fixing this?