In addition to the debug server logs and screenshots and indication as to when exact;ly the error arose - i may also need browser dev console logging (via F12 / preserve log and then after the error saving all as .har file - if you get this please send zipped by Private Message as it would include security tokens)
I was able to scoot around the issue by putting a breakpoint in the dev console and replacing the undefined channels with an empty array. That allowed the UI to render properly and i was able to then use the UI to remove and re-add my DVR device.
So while its not clear why channels is undefined, but the a quick fix for the web ui devs would be to change s.channels.reduce(...) to (s.channels || []).reduce(...). Not sure what s is called in the original src code, since this is just the minified and obfuscated code, but there should be enough context in the screenshot I included in my previous message for the devās to handle this edge case scenario that has cropped up over the last couple months.
I wasnāt really intending my answer to be a viable solution as it requires mucking around with the code (it was more meant to give the Plex devās a lead to the issue ⦠iām a software engineer and know how much of a pain it is to troubleshoot edge cases), but if you really want to hereās what I didā¦
Open the Chrome Developer Tools to get to the Console (you can use the instructions linked by @sa2000)
In the console, find the TypeError: Cannot read properties of undefined (reading 'reduce') error (0:05)
Below the error, there are several lines starting with at ⦠this is the stack traceā¦click the first one (this is the line of code that was executing when the UI blew up). Clicking this will open up the javascript code. (0:11)
Click the Pretty Print button to make it a little easier to read it it and more importantly to be able to set a breakpoint where we need it (0:16). The line we need to stop on is a couple lines above the one that actually threw the error. If you care for the technical reason for this, it is that the s constants properties are read-only, so they cannot be modified and the s is a constant and cannot be replaced. The e however can be replacedā¦so we will modify the e variable.
Right-click the line number for the line that is const {guideChannels: s} = e and click Add conditional breakpoint (0:35)
Enter a condition of !e.guideChannels.channels. Make sure the the breakpoint is saved (the line number should have yellow tag with a ?) (0:45)
Reload the page (donāt close the dev consoleā¦it has to be open for breakpoints to fire)
When you reload the page, it should stop executing at the breakpoint, assuming the code is broken the same way mine was. (0:56)
When it stops, enter in the console window e = {...e, guideChannels: {...e.guideChannels, channels: []}} and hit enter/return. Note: For me, this took a while to execute and it appeared to do nothing, but eventually it does return (1:51)
Click the resume button (1:55) and then you can close the dev console and remove the dvr device or whatever that button is that removes the device.
I would need the debug server logs corresponding to the time when this happens plus a copy of the Plex Media Server database to look at the content of the media_provider_resources table contents
From the server log, we establish where the channels are coming from and may need some curl requests to be fired to get the contents that the server then passes to Plex Web
From logs from @azervos3_gmail_com i can see we are probably trying out an old no longer existing lineup
So i do need to have a full understanding of the issue before suggesting changes to Plex Web or Plex Media Server to supplement what you found
A non existing lineup would result in no channels being returned to Plex Web
What I need is country / zip code / zip download of the Plex Media Server database plus the debug server logs for the time the issue you found in Plex Web
and what lineup you were using and what you need to use - if you know - the logs and database will show what was used before and what is being tried
I have reproduced the error by doctoring my database to use a non-existing lineup
I will follow this up and will refer it to the Plex Web team
I am interested to know what lineup / country / zip code was being used and what you need to use - so would like to see the database zip and the other info i asked for
I need to put it into context - is the lineup from the time when we had the previous provider - tivo before switch back to gracenote. Is it obsolete because of some other reason
For mine it was likely from neglect. I had setup live tv a few years ago (when it first came out). But we rarely used it and eventually the power adapter died on my tuner (this was probably a couple years ago). I hadnāt touched it in a long time. I vaguely remember Plex announcing something about the line ups or guide stuff changing and there was some action we needed to take. I neglected doing that, which is probably when it lost itās data. My wife was asking for live tv a few weeks ago, so I just went to set it up again and ran into this. Iāve already corrected the database. I was having other issues when setting up my tuner (long story short I needed to change my container in kubernetes to use host networking) and while doing so I used some SQLite tools and cleaned up stuff in the database (specifically that table you asked forā¦so not sure a current db dump would be all that useful).
Iām pretty sure I was using OTA channels line up for zip code 85295 USA. I donāt have access to the db right now to grab.
Itās incredibly unhelpful for it to refer people to the forum where you can see other people having the same problem for what appears to be about 3 or 4 months with no fix. It says my DVR guide data is no longer updated and to delete it and recreate it, then i click get started and it tells me there was an unexpected error. I guess they got my money for the lifetime pass and now itās my problem.