tunarr icon indicating copy to clipboard operation
tunarr copied to clipboard

[Bug] RangeError: Invalid time value

Open jl94x4 opened this issue 1 year ago • 20 comments

Contact Details

No response

What happened?

A bug happened!

Version

0.1.0

What browser did you experience the the problem on?

Microsoft Edge (125.0.0.0)

What operating system are you using?

Windows (NT 10.0)

Relevant log output

RangeError: Invalid time value
    at nHe (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:363:88917)
    at nA (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:62:19550)
    at nU (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:64:44096)
    at J5 (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:64:39817)
    at Mee (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:64:39744)
    at cb (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:64:39595)
    at _P (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:64:35958)
    at X5 (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:64:34905)
    at E (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:49:1558)
    at MessagePort._ (http://192.168.1.22:3333/web/assets/index-9ade4abc.js:49:1920)

jl94x4 avatar Jun 13 '24 23:06 jl94x4

Are you able to provide any other details? Were you adding a ton of programs? What sort of program tools, if any, were you using? Any details would be very helpful here!

chrisbenincasa avatar Jun 13 '24 23:06 chrisbenincasa

This is just me adding one TV Show, when saving I get

Error saving programs. Zodios: Invalid Body parameter 'body'

jl94x4 avatar Jun 18 '24 21:06 jl94x4

Hmm ok, that's tough to debug without additional context. There should be more details in that log, too, which is weird.

I don't think this feature is completely broken since some others and I have been testing 1000s of shows at once...so we have to find a way to get more error details from your situation

chrisbenincasa avatar Jun 18 '24 21:06 chrisbenincasa

The initial error "invalid time value" is different from the second error on the save request. Have you tried pulling more recent builds and retrying?

chrisbenincasa avatar Jun 18 '24 22:06 chrisbenincasa

The initial error "invalid time value" is different from the second error on the save request. Have you tried pulling more recent builds and retrying?

I updated tonight.

It only gives the Zodios error when I include some shows in the programming.

jl94x4 avatar Jun 18 '24 22:06 jl94x4

For the Zodios error, there should be some more details in the developer tools console that would be helpful to paste in here.

chrisbenincasa avatar Jun 19 '24 02:06 chrisbenincasa

ChannelProgrammingConfig.tsx:101 Error: Zodios: Invalid Body parameter 'body' at MVe.request (index.mjs:4:2592) at async tB.interceptRequest (index.mjs:9:782) at async OVe.request (index.mjs:9:6099)Caused by: ZodError at get error (index.mjs:538:31) at MVe.request (index.mjs:4:2644) at async tB.interceptRequest (index.mjs:9:782) at async OVe.request (index.mjs:9:6099) ZodError at get error (index.mjs:538:31) at MVe.request (index.mjs:4:2644) at async tB.interceptRequest (index.mjs:9:782) at async OVe.request (index.mjs:9:6099) onError @ ChannelProgrammingConfig.tsx:101 execute @ mutation.js:127 Show 1 more frame Show less [NEW] Explain Console errors by using Copilot in Edge: click

     to explain an error. 
    Learn more
    
      
      
      Don't show again

Error: Zodios: Invalid Body parameter 'body' at MVe.request (index.mjs:4:2592) at async tB.interceptRequest (index.mjs:9:782) at async OVe.request (index.mjs:9:6099)Caused by: ZodError at get error (index.mjs:538:31) at MVe.request (index.mjs:4:2644) at async tB.interceptRequest (index.mjs:9:782) at async OVe.request (index.mjs:9:6099)

jl94x4 avatar Jun 20 '24 01:06 jl94x4

I see. Im still surprised by the lack of error details: that line should print a bunch of info: https://github.com/chrisbenincasa/tunarr/blob/dev/web/src/components/channel_config/ChannelProgrammingConfig.tsx#L99-L102

chrisbenincasa avatar Jun 22 '24 13:06 chrisbenincasa

I'm going to push a change that hopefully will get more details printed.

chrisbenincasa avatar Jun 22 '24 13:06 chrisbenincasa

OK once e486db84abc1e6ea1050edb14f1a30355d610f2a lands in the edge build we should get the actual type error

chrisbenincasa avatar Jun 22 '24 13:06 chrisbenincasa

I get the same thing when adding some music videos to recreate a MTV like experience. Doesn't have to be many items, I have a consistent repro

image

trevren11 avatar Jul 27 '24 05:07 trevren11

Just commented something similar on #638 - we've seen this a few times. There should be more details as to what field Tunarr expects but is missing in the browser console logs. Most times the field is unnecessarily marked as required and we can easily mark it optional and the issue is resolved. Let me know if you can get more details from your browser console log and I can look into fixing this.

chrisbenincasa avatar Jul 27 '24 10:07 chrisbenincasa

Ahh ok I didn't know it was in the browser log, I get this: It happens when adding a particular set (75 items) I can probably narrow it down further and inspect the one it fails or I might be able to help out and fix later this week Line: https://github.com/chrisbenincasa/tunarr/blob/c067a85756185ed7fe2fdea613208656de7133c4/web/src/components/channel_config/ChannelProgrammingConfig.tsx#L100-L106 image

image image

Error: Zodios: Invalid Body parameter 'body'
    at Object.request (index.mjs:4:2592)
    at async CN.interceptRequest (index.mjs:9:782)
    at async h6e.request (index.mjs:9:6099)Caused by: ZodError
    at get error (index.mjs:538:31)
    at Object.request (index.mjs:4:2644)
    at async CN.interceptRequest (index.mjs:9:782)
    at async h6e.request (index.mjs:9:6099)
    ```
    
    ```
    ChannelProgrammingConfig.tsx:102 ZodError
    at get error (index.mjs:538:31)
    at Object.request (index.mjs:4:2644)
    at async CN.interceptRequest (index.mjs:9:782)
    at async h6e.request (index.mjs:9:6099) "Zodios: Invalid Body parameter 'body'"
    ```
    
    ```
    ChannelProgrammingConfig.tsx:104 [
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      239,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      239,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      240,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      240,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      241,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      241,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      242,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      242,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      243,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      243,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      244,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      244,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      245,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      245,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      246,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      246,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      247,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      247,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      248,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      248,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      249,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      249,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      250,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      250,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  }
] 
(24) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
0
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
1
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
2
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
3
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
4
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
5
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
6
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
7
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
8
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
9
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
10
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
11
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
12
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
13
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
14
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
15
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
16
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
17
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
18
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
19
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
20
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
21
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
22
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
23
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
length
: 
24
[[Prototype]]

trevren11 avatar Jul 27 '24 20:07 trevren11

Narrowed down to just a single episode that will fail, plex metadata is as follows:

image Plex metadata

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="2" librarySectionTitle="TV" librarySectionUUID="6c2368cc-58db-4d73-8349-e5ee7d99b651" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1720526106">
<Video ratingKey="80691" key="/library/metadata/80691" parentRatingKey="80690" grandparentRatingKey="80689" guid="plex://episode/5d9c11d1ba6eb9001fc0db02" parentGuid="plex://season/602e66a391bd55002cf838e4" grandparentGuid="plex://show/5d9c0864705e7a001e6dacbb" grandparentSlug="schoolhouse-rock" type="episode" title="Three Is a Magic Number" grandparentKey="/library/metadata/80689" parentKey="/library/metadata/80690" librarySectionTitle="TV" librarySectionID="2" librarySectionKey="/library/sections/2" grandparentTitle="Schoolhouse Rock!" parentTitle="Season 1" contentRating="Not Rated" summary="A Magician digs deep into his top hat that proves there's a magic number." index="1" parentIndex="1" audienceRating="10.0" year="1973" thumb="/library/metadata/80691/thumb/1722112539" art="/library/metadata/80689/art/1720753544" parentThumb="/library/metadata/80690/thumb/1720749464" grandparentThumb="/library/metadata/80689/thumb/1720753544" grandparentArt="/library/metadata/80689/art/1720753544" grandparentTheme="/library/metadata/80689/theme/1720753544" duration="181324" originallyAvailableAt="1973-01-06" addedAt="1720749458" updatedAt="1722112539" audienceRatingImage="themoviedb://image.rating">
<Media id="103758" duration="181324" bitrate="1137" width="720" height="480" aspectRatio="1.33" audioChannels="2" audioCodec="aac" videoCodec="h264" videoResolution="480" container="mp4" videoFrameRate="NTSC" optimizedForStreaming="1" audioProfile="lc" has64bitOffsets="0" videoProfile="high">
<Part accessible="1" exists="1" id="135508" key="/library/parts/135508/1720222747/file.mp4" duration="181324" file="/media/TV/Schoolhouse Rock!/Season 1/Schoolhouse Rock! - S01E01 - Three is a Magic Number.mp4" size="25773484" audioProfile="lc" container="mp4" has64bitOffsets="0" optimizedForStreaming="1" videoProfile="high">
<Stream id="365831" streamType="1" default="1" codec="h264" index="0" bitrate="1001" anamorphic="1" bitDepth="8" chromaLocation="left" chromaSubsampling="4:2:0" codedHeight="480" codedWidth="720" frameRate="29.970" hasScalingMatrix="0" height="480" level="30" pixelAspectRatio="8:9" profile="high" refFrames="5" scanType="progressive" streamIdentifier="1" width="720" displayTitle="480p (H.264)" extendedDisplayTitle="480p (H.264)"> </Stream>
<Stream id="365832" streamType="2" selected="1" default="1" codec="aac" index="1" channels="2" bitrate="128" audioChannelLayout="stereo" profile="lc" samplingRate="44100" streamIdentifier="2" displayTitle="Unknown (AAC Stereo)" extendedDisplayTitle="Unknown (AAC Stereo)"> </Stream>
</Part>
</Media>
<Guid id="imdb://tt1268154"/>
<Guid id="tmdb://416852"/>
<Guid id="tvdb://290708"/>
<Rating image="themoviedb://image.rating" value="10.0" type="audience"/>
<Writer id="256759" filter="writer=256759" tag="Bob Dorough" tagKey="5d776a7f23d5a3001f505275" thumb="https://metadata-static.plex.tv/0/people/08341fcad695718263011c555ec8715a.jpg"/>
<Role id="94472" filter="actor=94472" tag="Jack Sheldon" tagKey="5d77684f5af944001f1fed4e" role="" thumb="https://metadata-static.plex.tv/people/5d77684f5af944001f1fed4e.jpg"/>
<Role id="256673" filter="actor=256673" tag="Bob Dorough" tagKey="5d776a7f23d5a3001f505275" role="" thumb="https://metadata-static.plex.tv/0/people/08341fcad695718263011c555ec8715a.jpg"/>
<Role id="256674" filter="actor=256674" tag="Lynn Ahrens" tagKey="5d776f2696b655001fe7ed54" role="" thumb="https://metadata-static.plex.tv/people/5d776f2696b655001fe7ed54.jpg"/>
<Role id="256675" filter="actor=256675" tag="Blossom Dearie" tagKey="5d77685054c0f0001f30646c" role="" thumb="https://metadata-static.plex.tv/6/people/627e72843588c7ac2372d89840c7e0c5.jpg"/>
<Role id="256676" filter="actor=256676" tag="Essra Mohawk" tagKey="5d9c0864705e7a001e6dacf2" role="" thumb="https://metadata-static.plex.tv/1/people/1544a77e4a849351b236be6c5125f648.jpg"/>
<Role id="256677" filter="actor=256677" tag="Grady Tate" tagKey="5d77689f594b2b001e6911d1" role="" thumb="https://metadata-static.plex.tv/4/people/451ff92c2610977ba9820bfa1a850758.jpg"/>
<Extras size="0"> </Extras>
<Related> </Related>
</Video>
</MediaContainer>

Console statement:

ChannelProgrammingConfig.tsx:104 [
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      239,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      239,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  }
] 
(2) [{…}, {…}]
0
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
1
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
length
: 
2

trevren11 avatar Jul 27 '24 20:07 trevren11

Thanks for all the info! This one is definitely strange because your example item seems to have both of the fields that Tunarr is saying is missing (unless I'm missing something). You're sure that's the item that's causing that exact error?

So "bitrate" we can almost certainly mark as optional. "Duration" is tricky though, since it's used for pretty much everything from guide building to streaming.

chrisbenincasa avatar Jul 28 '24 12:07 chrisbenincasa

Looking again, for "duration" I see it's complaining about the one nested on the Media field. While that's still present and I'm not sure why it's complaining, there is one in the root level item which is really all we need.

chrisbenincasa avatar Jul 28 '24 12:07 chrisbenincasa

Hmm strange so it must be an issue of one that is already in there. I just created a different channel and only added that one episode but it was fine so must be somewhere else, I'll try and find which one is actually causing it.

Any way it could just not add those and display which ones weren't added for future proofing and not to fail on invalid items?

trevren11 avatar Jul 28 '24 22:07 trevren11

I narrowed to a single item from a blank channel, still not sure why it would be failing because the plex xml shows the fields, I wonder if Tunarr can't access some of them? Single instance failing image

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="2" librarySectionTitle="TV" librarySectionUUID="6c2368cc-58db-4d73-8349-e5ee7d99b651" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1720526106">
<Video ratingKey="80692" key="/library/metadata/80692" parentRatingKey="80690" grandparentRatingKey="80689" guid="plex://episode/5d9c11d1ba6eb9001fc0daff" parentGuid="plex://season/602e66a391bd55002cf838e4" grandparentGuid="plex://show/5d9c0864705e7a001e6dacbb" grandparentSlug="schoolhouse-rock" type="episode" title="My Hero, Zero" grandparentKey="/library/metadata/80689" parentKey="/library/metadata/80690" librarySectionTitle="TV" librarySectionID="2" librarySectionKey="/library/sections/2" grandparentTitle="Schoolhouse Rock!" parentTitle="Season 1" contentRating="Not Rated" summary="When it comes to multiplications, zero is a real hero. It will always be an important number to the world." index="2" parentIndex="1" audienceRating="6.3" year="1973" thumb="/library/metadata/80692/thumb/1722204349" art="/library/metadata/80689/art/1720753544" parentThumb="/library/metadata/80690/thumb/1720749464" grandparentThumb="/library/metadata/80689/thumb/1720753544" grandparentArt="/library/metadata/80689/art/1720753544" grandparentTheme="/library/metadata/80689/theme/1720753544" duration="181533" originallyAvailableAt="1973-01-20" addedAt="1720749458" updatedAt="1722204349" audienceRatingImage="themoviedb://image.rating">
<Media id="103759" duration="181533" bitrate="1076" width="720" height="480" aspectRatio="1.33" audioChannels="2" audioCodec="aac" videoCodec="h264" videoResolution="480" container="mp4" videoFrameRate="NTSC" optimizedForStreaming="1" audioProfile="lc" has64bitOffsets="0" videoProfile="high">
<Part accessible="1" exists="1" id="135509" key="/library/parts/135509/1720222747/file.mp4" duration="181533" file="/media/TV/Schoolhouse Rock!/Season 1/Schoolhouse Rock! - S01E02 - My Hero, Zero.mp4" size="24427030" audioProfile="lc" container="mp4" has64bitOffsets="0" optimizedForStreaming="1" videoProfile="high">
<Stream id="369006" streamType="1" default="1" codec="h264" index="0" bitrate="941" anamorphic="1" bitDepth="8" chromaLocation="left" chromaSubsampling="4:2:0" codedHeight="480" codedWidth="720" frameRate="29.970" hasScalingMatrix="0" height="480" level="30" pixelAspectRatio="8:9" profile="high" refFrames="5" scanType="progressive" streamIdentifier="1" width="720" displayTitle="480p (H.264)" extendedDisplayTitle="480p (H.264)"> </Stream>
<Stream id="369007" streamType="2" selected="1" default="1" codec="aac" index="1" channels="2" bitrate="128" audioChannelLayout="stereo" profile="lc" samplingRate="44100" streamIdentifier="2" displayTitle="Unknown (AAC Stereo)" extendedDisplayTitle="Unknown (AAC Stereo)"> </Stream>
</Part>
</Media>
<Guid id="imdb://tt1268077"/>
<Guid id="tmdb://416850"/>
<Guid id="tvdb://290706"/>
<Rating image="themoviedb://image.rating" value="6.3" type="audience"/>
<Writer id="256759" filter="writer=256759" tag="Bob Dorough" tagKey="5d776a7f23d5a3001f505275" thumb="https://metadata-static.plex.tv/0/people/08341fcad695718263011c555ec8715a.jpg"/>
<Role id="94472" filter="actor=94472" tag="Jack Sheldon" tagKey="5d77684f5af944001f1fed4e" role="" thumb="https://metadata-static.plex.tv/people/5d77684f5af944001f1fed4e.jpg"/>
<Role id="256673" filter="actor=256673" tag="Bob Dorough" tagKey="5d776a7f23d5a3001f505275" role="" thumb="https://metadata-static.plex.tv/0/people/08341fcad695718263011c555ec8715a.jpg"/>
<Role id="256674" filter="actor=256674" tag="Lynn Ahrens" tagKey="5d776f2696b655001fe7ed54" role="" thumb="https://metadata-static.plex.tv/people/5d776f2696b655001fe7ed54.jpg"/>
<Role id="256675" filter="actor=256675" tag="Blossom Dearie" tagKey="5d77685054c0f0001f30646c" role="" thumb="https://metadata-static.plex.tv/6/people/627e72843588c7ac2372d89840c7e0c5.jpg"/>
<Role id="256676" filter="actor=256676" tag="Essra Mohawk" tagKey="5d9c0864705e7a001e6dacf2" role="" thumb="https://metadata-static.plex.tv/1/people/1544a77e4a849351b236be6c5125f648.jpg"/>
<Role id="256677" filter="actor=256677" tag="Grady Tate" tagKey="5d77689f594b2b001e6911d1" role="" thumb="https://metadata-static.plex.tv/4/people/451ff92c2610977ba9820bfa1a850758.jpg"/>
<Extras size="0"> </Extras>
<Related> </Related>
</Video>
</MediaContainer>

console output

ChannelProgrammingConfig.tsx:104 [
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      0,
      "originalProgram",
      "Media",
      0,
      "duration"
    ],
    "message": "Required"
  },
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "undefined",
    "path": [
      "programs",
      0,
      "originalProgram",
      "Media",
      0,
      "bitrate"
    ],
    "message": "Required"
  }
] 
(2) [{…}, {…}]
0
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
1
: 
{code: 'invalid_type', expected: 'number', received: 'undefined', path: Array(6), message: 'Required'}
length
: 
2
[[Prototype]]
: 
Array(0)

trevren11 avatar Jul 28 '24 22:07 trevren11

What version are you using currently? I remembered that I marked these fields as optional as part of https://github.com/chrisbenincasa/tunarr/issues/600. I wonder if either your version doesn't have this fix (though it was a while back) or if there's another area where we need to mark these fields optional.

chrisbenincasa avatar Jul 29 '24 19:07 chrisbenincasa

If you want, you can hit Tunarr's Plex proxy endpoint to see what Tunarr would receive from the requests for metadata.

The endpoint is in the form (where PLEX_SERVER_NAME is the name of the server you added within Tunarr):

http://localhost:8000/api/plex?name=PLEX_SERVER_NAME&path=/library/metadata/80692

Using your key above as an example

chrisbenincasa avatar Jul 30 '24 20:07 chrisbenincasa

We've added code to protect against 0 duration programs and have also marked the other fields mentioned here as optional. Going to close this out for now, but feel free to open a new issue or reopen if this is still an issue.

chrisbenincasa avatar Oct 23 '24 11:10 chrisbenincasa