I'm running TVH 4.3-2375g653bd0400 on a Raspberry Pi Debian GNU/Linux 12 (bookworm) arm64.

I access the control site (port 9981) from various devices, but recently a Windows 10 PC running Firefox 134.0.2 is no longer able to open the dialog for DVR | Autorec, Add or DVR | Autorec, Edit: when I press those buttons, the browser window flashes slightly but nothing else happens. It used to work fine until a few days ago. All the other dialogs work OK - eg Upcoming Recording, Add.

MS Edge on the same PC works fine, and the same version of Firefox works fine on other PCs.

I've cleared all the history for all time {History, Cookies, Cache, Site Settings) from Firefox's cache, but it's not made any difference.

Has anyone else experienced this. I wonder if it's a recent update to Firefox which has done something odd.

Is there any tracing that I can run, so I post a log for people to look at?

I've also tried running Firefox in Help | Troubleshooting Mode but it makes no difference.

There is a very brief "Loading. Please Wait" message (both normal mode and troubleshooting mode) but no dialog opens over the top of the Autorecs page (which lists all the autorecs that I have set up).

Imagine it's a browser problem rather than a TVH problem, but I'm asking here in case anyone else who uses Firefox to access TVH's port 9981 site has had the same problem and worked out what to do to fix it.

I encountered this yesterday too (FF134.0.1 Win-64). I had a look in the browser console and saw an error message. I have not yet had time to investigate any further.

Uncaught TypeError: r.get(...) is not a string
    setValue http://TVH_IP:9981/static/tvh.js.gz:243
    each http://TVH_IP:9981/static/tvh.js.gz:1
    each http://TVH_IP:9981/static/tvh.js.gz:1
    setValue http://TVH_IP:9981/static/tvh.js.gz:243
    initValue http://TVH_IP:9981/static/tvh.js.gz:1
    initValue http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    render http://TVH_IP:9981/static/tvh.js.gz:1
    renderItem http://TVH_IP:9981/static/tvh.js.gz:1
    renderAll http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    runLayout http://TVH_IP:9981/static/tvh.js.gz:1
    onResize http://TVH_IP:9981/static/tvh.js.gz:1
    fire http://TVH_IP:9981/static/tvh.js.gz:1
    fireEvent http://TVH_IP:9981/static/tvh.js.gz:1
    onBodyResize http://TVH_IP:9981/static/tvh.js.gz:1
    onResize http://TVH_IP:9981/static/tvh.js.gz:1
    setSize http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    runLayout http://TVH_IP:9981/static/tvh.js.gz:1
    onResize http://TVH_IP:9981/static/tvh.js.gz:1
    fire http://TVH_IP:9981/static/tvh.js.gz:1
    fireEvent http://TVH_IP:9981/static/tvh.js.gz:1
    onBodyResize http://TVH_IP:9981/static/tvh.js.gz:1
    onResize http://TVH_IP:9981/static/tvh.js.gz:1
    setSize http://TVH_IP:9981/static/tvh.js.gz:1
    setItemSize http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    doLayout http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    render http://TVH_IP:9981/static/tvh.js.gz:1
    show http://TVH_IP:9981/static/tvh.js.gz:1
    success http://TVH_IP:9981/static/tvh.js.gz:702
    success http://TVH_IP:9981/static/tvh.js.gz:1519
    handleResponse http://TVH_IP:9981/static/tvh.js.gz:1
    f http://TVH_IP:9981/static/tvh.js.gz:1
    m http://TVH_IP:9981/static/tvh.js.gz:1
    createCallback http://TVH_IP:9981/static/tvh.js.gz:1
    setInterval handler*n http://TVH_IP:9981/static/tvh.js.gz:1
    i http://TVH_IP:9981/static/tvh.js.gz:1
    request http://TVH_IP:9981/static/tvh.js.gz:1
    request http://TVH_IP:9981/static/tvh.js.gz:1
    Ajax http://TVH_IP:9981/static/tvh.js.gz:1522
    dodirect http://TVH_IP:9981/static/tvh.js.gz:699
    createwin http://TVH_IP:9981/static/tvh.js.gz:709
    idnode_create http://TVH_IP:9981/static/tvh.js.gz:710
    handler http://TVH_IP:9981/static/tvh.js.gz:738
    onClick http://TVH_IP:9981/static/tvh.js.gz:1
    I http://TVH_IP:9981/static/tvh.js.gz:1
    F http://TVH_IP:9981/static/tvh.js.gz:1
    addListener http://TVH_IP:9981/static/tvh.js.gz:1
    m http://TVH_IP:9981/static/tvh.js.gz:1
    h http://TVH_IP:9981/static/tvh.js.gz:1
    addListener http://TVH_IP:9981/static/tvh.js.gz:1
    addListener http://TVH_IP:9981/static/tvh.js.gz:1
    mon http://TVH_IP:9981/static/tvh.js.gz:1
    initButtonEl http://TVH_IP:9981/static/tvh.js.gz:1
    onRender http://TVH_IP:9981/static/tvh.js.gz:1
    render http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    doLayout http://TVH_IP:9981/static/tvh.js.gz:1
    initEvents http://TVH_IP:9981/static/tvh.js.gz:1
    each http://TVH_IP:9981/static/tvh.js.gz:1
    initEvents http://TVH_IP:9981/static/tvh.js.gz:1
    initEvents http://TVH_IP:9981/static/tvh.js.gz:1
    initEvents http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    render http://TVH_IP:9981/static/tvh.js.gz:1
    renderItem http://TVH_IP:9981/static/tvh.js.gz:1
    renderAll http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    doLayout http://TVH_IP:9981/static/tvh.js.gz:1
    build http://TVH_IP:9981/static/tvh.js.gz:764
    success http://TVH_IP:9981/static/tvh.js.gz:768
    success http://TVH_IP:9981/static/tvh.js.gz:1519
tvh.js.gz:243:247
    setValue http://TVH_IP:9981/static/tvh.js.gz:243
    each http://TVH_IP:9981/static/tvh.js.gz:1
    each http://TVH_IP:9981/static/tvh.js.gz:1
    setValue http://TVH_IP:9981/static/tvh.js.gz:243
    initValue http://TVH_IP:9981/static/tvh.js.gz:1
    initValue http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    render http://TVH_IP:9981/static/tvh.js.gz:1
    renderItem http://TVH_IP:9981/static/tvh.js.gz:1
    renderAll http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    runLayout http://TVH_IP:9981/static/tvh.js.gz:1
    onResize http://TVH_IP:9981/static/tvh.js.gz:1
    fire http://TVH_IP:9981/static/tvh.js.gz:1
    fireEvent http://TVH_IP:9981/static/tvh.js.gz:1
    onBodyResize http://TVH_IP:9981/static/tvh.js.gz:1
    onResize http://TVH_IP:9981/static/tvh.js.gz:1
    setSize http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    runLayout http://TVH_IP:9981/static/tvh.js.gz:1
    onResize http://TVH_IP:9981/static/tvh.js.gz:1
    fire http://TVH_IP:9981/static/tvh.js.gz:1
    fireEvent http://TVH_IP:9981/static/tvh.js.gz:1
    onBodyResize http://TVH_IP:9981/static/tvh.js.gz:1
    onResize http://TVH_IP:9981/static/tvh.js.gz:1
    setSize http://TVH_IP:9981/static/tvh.js.gz:1
    setItemSize http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    doLayout http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    render http://TVH_IP:9981/static/tvh.js.gz:1
    show http://TVH_IP:9981/static/tvh.js.gz:1
    success http://TVH_IP:9981/static/tvh.js.gz:702
    success http://TVH_IP:9981/static/tvh.js.gz:1519
    handleResponse http://TVH_IP:9981/static/tvh.js.gz:1
    f http://TVH_IP:9981/static/tvh.js.gz:1
    m http://TVH_IP:9981/static/tvh.js.gz:1
    createCallback http://TVH_IP:9981/static/tvh.js.gz:1
    (Async: setInterval handler)
    n http://TVH_IP:9981/static/tvh.js.gz:1
    i http://TVH_IP:9981/static/tvh.js.gz:1
    request http://TVH_IP:9981/static/tvh.js.gz:1
    request http://TVH_IP:9981/static/tvh.js.gz:1
    Ajax http://TVH_IP:9981/static/tvh.js.gz:1522
    dodirect http://TVH_IP:9981/static/tvh.js.gz:699
    createwin http://TVH_IP:9981/static/tvh.js.gz:709
    idnode_create http://TVH_IP:9981/static/tvh.js.gz:710
    handler http://TVH_IP:9981/static/tvh.js.gz:738
    onClick http://TVH_IP:9981/static/tvh.js.gz:1
    I http://TVH_IP:9981/static/tvh.js.gz:1
    (Async: EventListener.handleEvent)
    F http://TVH_IP:9981/static/tvh.js.gz:1
    addListener http://TVH_IP:9981/static/tvh.js.gz:1
    m http://TVH_IP:9981/static/tvh.js.gz:1
    h http://TVH_IP:9981/static/tvh.js.gz:1
    addListener http://TVH_IP:9981/static/tvh.js.gz:1
    addListener http://TVH_IP:9981/static/tvh.js.gz:1
    mon http://TVH_IP:9981/static/tvh.js.gz:1
    initButtonEl http://TVH_IP:9981/static/tvh.js.gz:1
    onRender http://TVH_IP:9981/static/tvh.js.gz:1
    render http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    doLayout http://TVH_IP:9981/static/tvh.js.gz:1
    initEvents http://TVH_IP:9981/static/tvh.js.gz:1
    each http://TVH_IP:9981/static/tvh.js.gz:1
    initEvents http://TVH_IP:9981/static/tvh.js.gz:1
    initEvents http://TVH_IP:9981/static/tvh.js.gz:1
    initEvents http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    afterRender http://TVH_IP:9981/static/tvh.js.gz:1
    render http://TVH_IP:9981/static/tvh.js.gz:1
    renderItem http://TVH_IP:9981/static/tvh.js.gz:1
    renderAll http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    onLayout http://TVH_IP:9981/static/tvh.js.gz:1
    layout http://TVH_IP:9981/static/tvh.js.gz:1
    doLayout http://TVH_IP:9981/static/tvh.js.gz:1
    build http://TVH_IP:9981/static/tvh.js.gz:764
    success http://TVH_IP:9981/static/tvh.js.gz:768
    success http://TVH_IP:9981/static/tvh.js.gz:1519

It works fine in FF130.0.1 64-bit on Linux
It works fine in Edge.

I plan to dig a little deeper and see what I can find. I'm guessing that FireFox has changed something in JavaScript in a recent release because it works in v130 but not v 134.

    DeltaMikeCharlie Good to hear that I'm not the only one having this problem. I'll keep an eye on this thread, and I'll use MS Edge for those time when I need to add/edit Autorecs till it's fixed.

    I've just realised that the other Windows PC that I have which uses Firefox is running V 115.19.0 ESR, not V134 because it's Win7 and V134 is reputed not to work on Win7. So I've only one Windows PC running FF 134. I'll try my Linux PCs tomorrow (Ubuntu, Cinnamon Mint and MX) and see whether they have the fault - assuming they are running V134.

    I have this problem too and patched it like this.
    You have to run the following command in TVHeadend's /share/tvheadend/src/webui/static

    cp tvh.js.gz tvh.js.gz.orig; gunzip -c tvh.js.gz.orig | sed 's/RegExp.escape(r.get(this.valueField))/RegExp.escape(String(r.get(this.valueField)))/' | gzip > tvh.js.gz

    If something goes wrong copy "tvh.js.gz.orig" back to "tvh.js.gz".

    Edit: The above line has to be on one line of course. Unfortunately the Browser breaks it up.

    Yes. I can confirm this issue with Firefox 134.0.2 in Linux as well. The patch posted works for me as well. Thank you.