Serving js.utils slow on Windows 10? XML problems?

Hi all,

Long time Plex user and tinkerer. Upgraded my old HP N54 to a beefier custom server with an i5 and more RAM. Also upgraded to Windows 10 from 7 (then did a fresh Windows 10 install post-serial activation to ensure a clean install). So far everything going swimmingly and transcoding etc for ‘official’ apps is much faster etc.

PlexConnect is a different story though. It seems that (from my primitive understanding of the logs) when opening up the TV Shows or Movies panes under my Library (single server, no shared libraries etc) PlexConnect seems to hang until it has loaded, slowly, js.utils. I did not have this previously on my other server and am still using the same SSD to store all the Plex files and meta data so I don’t believe file access times are being hindered. It’s now just thrown an error as shown below in the log, then it finally loads js.utils.

So far I have -
Attempted to mash together my old PlexConnect settings file, changing the newly installed one to more or less match, no improvement.
Rebuilt the certs and re-added, no improvement.
Disabled Windows Firewall and Windows Defender, no improvement.
Changes PlexGDM to False, no improvement.

I’ve copy and pasted the settings file and log showing the random delay. It also seems to take longer to load content than it did before. Am I missing something I should have already disabled in Windows 10 to improve things?

Log:

23:29:02 PlexConnect: ***
23:29:02 PlexConnect: PlexConnect
23:29:02 PlexConnect: Press CTRL-C to shut down.
23:29:02 PlexConnect: ***
23:29:02 PlexConnect: started: 23:29:02
23:29:02 PlexConnect: Version: 0.5-dev-101215
23:29:02 PlexConnect: Python: 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)]
23:29:02 PlexConnect: Host OS: win32
23:29:02 PlexConnect: PILBackgrounds: Is PIL installed? False
23:29:02 PlexConnect: IP_self: 192.168.1.81
23:29:02 DNSServer: started: 23:29:02
23:29:02 DNSServer: ***
23:29:02 DNSServer: DNSServer: Serving DNS on 192.168.1.81 port 53.
23:29:02 DNSServer: intercept: ['trailers.apple.com'] => 192.168.1.81
23:29:02 DNSServer: restrain: ['mesu.apple.com', 'appldnld.apple.com', 'appldnld.apple.com.edgesuite.net'] => 127.0.0.1
23:29:02 DNSServer: forward other to higher level DNS: 8.8.8.8
23:29:02 DNSServer: ***
23:29:02 WebServer: started: 23:29:02
23:29:02 WebServer: ***
23:29:02 WebServer: WebServer: Serving HTTP on 192.168.1.81 port 80.
23:29:02 WebServer: ***
23:29:02 WebServer: started: 23:29:02
23:29:02 WebServer: ***
23:29:02 WebServer: WebServer: Serving HTTPS on 192.168.1.81 port 443.
23:29:02 WebServer: ***
23:29:07 WebServer: serving /js/application.js
23:29:07 WebServer: serving .xml: /
23:29:07 PlexAPI: ***
23:29:07 PlexAPI: poke plex.tv - request Plex Media Server list
23:29:07 PlexAPI: ***
23:29:07 PlexAPI: Servers (local, plex.tv, MyPlex): 2
23:29:08 WebServer: serving .xml: /PlexConnect.xml
23:29:08 WebServer: serving /js/utils.js
23:29:08 WebServer: serving /js/handlePlexConnectNavbar.js
23:29:08 WebServer: serving .xml: /library/sections
23:29:08 WebServer: serving /js/utils.js
23:29:08 WebServer: serving /js/sectionHoldSelect.js
23:29:09 WebServer: serving .xml: /library/sections/2/recentlyAdded
23:29:12 WebServer: serving .xml: /library/sections/2/recentlyAdded
23:29:25 WebServer: serving .xml: /library/sections/1/recentlyAdded
23:29:27 WebServer: serving .xml: /library/sections/2/recentlyAdded
23:29:30 WebServer: serving .xml: /library/sections/2
23:29:31 WebServer: serving /js/utils.js
23:29:31 WebServer: serving /js/updateXML.js
23:29:31 WebServer: serving .xml: /library/sections/2
23:30:03 DNSServer: DNS request received!
23:30:03 DNSServer: Source: ('192.168.1.16', 61351)
23:30:03 DNSServer: Domain: trailers.apple.com
23:30:03 DNSServer: ***intercept request
23:30:03 DNSServer: -> DNS response: 192.168.1.81
23:30:03 WebServer: serving /js/utils.js
23:30:14 WebServer: serving .xml: /library/metadata/5869
23:30:14 WebServer: serving /js/utils.js
23:30:14 WebServer: serving /js/selectAudioAndSubs.js
23:30:14 WebServer: serving *.png: /thumbnails/MediaBadges/720.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/mkv.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/h264.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/ac3.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/2.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/2.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/ac3.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/h264.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/mkv.png
23:30:15 WebServer: serving *.png: /thumbnails/MediaBadges/720.png
23:32:06 DNSServer: DNS request received!
23:32:06 DNSServer: Source: ('192.168.1.16', 64865)
23:32:06 DNSServer: Domain: trailers.apple.com
23:32:06 DNSServer: ***intercept request
23:32:06 DNSServer: -> DNS response: 192.168.1.81
23:32:06 WebServer: serving .xml: /library/sections/2
23:32:06 WebServer: serving /js/utils.js
23:32:06 WebServer: serving /js/updateXML.js
23:32:07 WebServer: serving .xml: /library/sections/2
23:32:17 WebServer: serving /js/application.js
23:32:17 WebServer: serving .xml: /
23:32:17 PlexAPI: ***
23:32:17 PlexAPI: poke plex.tv - request Plex Media Server list
23:32:17 PlexAPI: ***
23:32:17 PlexAPI: Servers (local, plex.tv, MyPlex): 2
23:32:17 WebServer: serving .xml: /PlexConnect.xml
23:32:17 WebServer: serving /js/utils.js
23:32:18 WebServer: serving /js/handlePlexConnectNavbar.js
23:32:18 WebServer: serving .xml: /library/sections
23:32:18 WebServer: serving /js/utils.js
23:32:18 WebServer: serving /js/sectionHoldSelect.js
23:32:19 WebServer: serving .xml: /library/sections/2/recentlyAdded
23:32:20 WebServer: serving .xml: /library/sections/2/recentlyAdded
23:32:21 WebServer: serving .xml: /library/sections/2
23:32:21 WebServer: serving .xml: /library/sections/2/recentlyAdded
23:32:21 WebServer: serving /js/utils.js
23:32:22 WebServer: serving /js/updateXML.js
23:32:22 WebServer: serving .xml: /library/sections/2
23:32:39 PlexAPI: Error loading response XML from Plex Media Server:
Traceback (most recent call last):
  File "D:\PlexConnect-master\PlexAPI.py", line 406, in getXMLFromPMS
    response = urllib2.urlopen(request, timeout=20)
  File "D:\Python27\Lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "D:\Python27\Lib\urllib2.py", line 431, in open
    response = self._open(req, data)
  File "D:\Python27\Lib\urllib2.py", line 449, in _open
    '_open', req)
  File "D:\Python27\Lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "D:\Python27\Lib\urllib2.py", line 1240, in https_open
    context=self._context)
  File "D:\Python27\Lib\urllib2.py", line 1200, in do_open
    r = h.getresponse(buffering=True)
  File "D:\Python27\Lib\httplib.py", line 1136, in getresponse
    response.begin()
  File "D:\Python27\Lib\httplib.py", line 453, in begin
    version, status, reason = self._read_status()
  File "D:\Python27\Lib\httplib.py", line 409, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "D:\Python27\Lib\socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
  File "D:\Python27\Lib\ssl.py", line 734, in recv
    return self.read(buflen)
  File "D:\Python27\Lib\ssl.py", line 621, in read
    v = self._sslobj.read(len or 1024)
SSLError: ('The read operation timed out',)

23:32:41 PlexAPI: Error loading response XML from Plex Media Server:
Traceback (most recent call last):
  File "D:\PlexConnect-master\PlexAPI.py", line 406, in getXMLFromPMS
    response = urllib2.urlopen(request, timeout=20)
  File "D:\Python27\Lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "D:\Python27\Lib\urllib2.py", line 431, in open
    response = self._open(req, data)
  File "D:\Python27\Lib\urllib2.py", line 449, in _open
    '_open', req)
  File "D:\Python27\Lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "D:\Python27\Lib\urllib2.py", line 1240, in https_open
    context=self._context)
  File "D:\Python27\Lib\urllib2.py", line 1200, in do_open
    r = h.getresponse(buffering=True)
  File "D:\Python27\Lib\httplib.py", line 1136, in getresponse
    response.begin()
  File "D:\Python27\Lib\httplib.py", line 453, in begin
    version, status, reason = self._read_status()
  File "D:\Python27\Lib\httplib.py", line 409, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "D:\Python27\Lib\socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
  File "D:\Python27\Lib\ssl.py", line 734, in recv
    return self.read(buflen)
  File "D:\Python27\Lib\ssl.py", line 621, in read
    v = self._sslobj.read(len or 1024)
SSLError: ('The read operation timed out',)

23:32:41 PlexAPI: Error loading response XML from Plex Media Server:
Traceback (most recent call last):
  File "D:\PlexConnect-master\PlexAPI.py", line 406, in getXMLFromPMS
    response = urllib2.urlopen(request, timeout=20)
  File "D:\Python27\Lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "D:\Python27\Lib\urllib2.py", line 431, in open
    response = self._open(req, data)
  File "D:\Python27\Lib\urllib2.py", line 449, in _open
    '_open', req)
  File "D:\Python27\Lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "D:\Python27\Lib\urllib2.py", line 1240, in https_open
    context=self._context)
  File "D:\Python27\Lib\urllib2.py", line 1200, in do_open
    r = h.getresponse(buffering=True)
  File "D:\Python27\Lib\httplib.py", line 1136, in getresponse
    response.begin()
  File "D:\Python27\Lib\httplib.py", line 453, in begin
    version, status, reason = self._read_status()
  File "D:\Python27\Lib\httplib.py", line 409, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "D:\Python27\Lib\socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
  File "D:\Python27\Lib\ssl.py", line 734, in recv
    return self.read(buflen)
  File "D:\Python27\Lib\ssl.py", line 621, in read
    v = self._sslobj.read(len or 1024)
SSLError: ('The read operation timed out',)

23:32:41 XMLConverter: XML_ExpandNode - Error in cmd ADDXML, line


    {{ADDXML(RecentlyAdded::recentlyAdded?X-Plex-Container-Start=0&X-Plex-Container-Size=40)}}
    {{ADDXML(RecentlyViewedEpisodes::recentlyViewed?X-Plex-Container-Start=0&X-Plex-Container-Size=40)}}

    {{VAR(items:NoKey:FALSE)}}


Traceback (most recent call last):
  File "D:\PlexConnect-master\XMLConverter.py", line 492, in XML_ExpandNode
    res = getattr(CommandCollection, 'TREE_'+cmd)(elem, child, src, srcXML, param)
  File "D:\PlexConnect-master\XMLConverter.py", line 899, in TREE_ADDXML
    self.PMSroot[tag] = PMS.getroot()  # store additional PMS XML
AttributeError: 'bool' object has no attribute 'getroot'

23:32:42 XMLConverter: XML_ExpandNode - Error in cmd CUT, line


Traceback (most recent call last):
  File "D:\PlexConnect-master\XMLConverter.py", line 492, in XML_ExpandNode
    res = getattr(CommandCollection, 'TREE_'+cmd)(elem, child, src, srcXML, param)
  File "D:\PlexConnect-master\XMLConverter.py", line 860, in TREE_CUT
    key, leftover, dfltd = self.getKey(src, srcXML, param)
  File "D:\PlexConnect-master\XMLConverter.py", line 629, in getKey
    el, srcXML, attrib = self.getBase(src, srcXML, attrib)
  File "D:\PlexConnect-master\XMLConverter.py", line 687, in getBase
    src = self.PMSroot[srcXML]
KeyError: 'RecentlyAired'

23:32:42 XMLConverter: XML_ExpandNode - Error in cmd CUT, line


Traceback (most recent call last):
  File "D:\PlexConnect-master\XMLConverter.py", line 492, in XML_ExpandNode
    res = getattr(CommandCollection, 'TREE_'+cmd)(elem, child, src, srcXML, param)
  File "D:\PlexConnect-master\XMLConverter.py", line 860, in TREE_CUT
    key, leftover, dfltd = self.getKey(src, srcXML, param)
  File "D:\PlexConnect-master\XMLConverter.py", line 629, in getKey
    el, srcXML, attrib = self.getBase(src, srcXML, attrib)
  File "D:\PlexConnect-master\XMLConverter.py", line 687, in getBase
    src = self.PMSroot[srcXML]
KeyError: 'RecentlyAired'

23:32:42 XMLConverter: XML_ExpandNode - Error in cmd COPY, line

                  {{VAR(items:NoKey:TRUE)}}

Traceback (most recent call last):
  File "D:\PlexConnect-master\XMLConverter.py", line 492, in XML_ExpandNode
    res = getattr(CommandCollection, 'TREE_'+cmd)(elem, child, src, srcXML, param)
  File "D:\PlexConnect-master\XMLConverter.py", line 749, in TREE_COPY
    src, srcXML, tag = self.getBase(src, srcXML, tag)
  File "D:\PlexConnect-master\XMLConverter.py", line 687, in getBase
    src = self.PMSroot[srcXML]
KeyError: 'RecentlyAired'

23:32:59 WebServer: serving /js/utils.js

Settings.cfg:

[PlexConnect]
enable_plexgdm = True
ip_pms = 192.168.178.10
port_pms = 32400
enable_dnsserver = True
port_dnsserver = 53
ip_dnsmaster = 8.8.8.8
prevent_atv_update = True
enable_plexconnect_autodetect = True
ip_plexconnect = 0.0.0.0
hosttointercept = trailers.apple.com
port_webserver = 80
enable_webserver_ssl = True
port_ssl = 443
certfile = ./assets/certificates/trailers.pem
allow_gzip_atv = False
allow_gzip_pmslocal = False
allow_gzip_pmsremote = True
loglevel = Normal
logpath = .

Any help at all or even just a link to a fix would be most appreciated!

Cheers for reading :slight_smile:

The log is strange - the is an OK run at 23:29:07-23:32:07.
The next access doesn’t work so well… request at 23:32:22 isn’t services by your PMS.
I can assure you, it’s no utils.js - do you have multiple Network cards, VPN installed? Firewall acting up? Changing IPs on the run?