Weird ressourcehash & certificate problem with agent

Hi @drzoidberg33 I value your knowledge and your ability to support very much, so I hope that you can help me solving a problem.

I am still using the legacy agents with several self-written agents. I am in the process of putting a new metadata provider together that will work inside the new structure of the Plex ecosystem.

But after coming back from a business trip from the US, I ran into a problem that my legacy OFDB agent throws an error which looks like I cannot resolve it easily.

I have not touched this agent for years - it just worked.

I am running PM server version 1.42.2.10122 (which does not hide the legacy agents) on QNAP (which gets no official updates due to a problem with QNAP app signing).

This has worked like a charm for months now - until recently. When I checked the PMS Plugin logs of my legacy agent, it says this:

2026-05-26 16:29:44,347 (7ff629483808) :  INFO (core:349) - Starting framework core - Version: 2.6.3, Build: 3749b98 (Thu Sep 04 15:38:13 UTC 2025)
2026-05-26 16:29:44,347 (7ff629483808) :  DEBUG (core:361) - Using the standard policy
2026-05-26 16:29:44,347 (7ff629483808) :  DEBUG (core:450) - Starting runtime component.
2026-05-26 16:29:44,348 (7ff629483808) :  DEBUG (core:450) - Starting caching component.
2026-05-26 16:29:44,348 (7ff629483808) :  DEBUG (core:450) - Starting data component.
2026-05-26 16:29:44,348 (7ff629483808) :  DEBUG (core:450) - Starting networking component.
2026-05-26 16:29:44,355 (7ff629483808) :  DEBUG (networking:262) - Loaded HTTP cookies
2026-05-26 16:29:44,374 (7ff629483808) :  DEBUG (networking:434) - Setting the default network timeout to 20.0
2026-05-26 16:29:44,375 (7ff629483808) :  DEBUG (core:450) - Starting localization component.
2026-05-26 16:29:44,375 (7ff629483808) :  INFO (localization:409) - Setting the default locale to en-us
2026-05-26 16:29:44,375 (7ff629483808) :  DEBUG (core:450) - Starting messaging component.
2026-05-26 16:29:44,375 (7ff629483808) :  DEBUG (core:450) - Starting debugging component.
2026-05-26 16:29:44,375 (7ff629483808) :  DEBUG (core:450) - Starting services component.
2026-05-26 16:29:44,376 (7ff629483808) :  DEBUG (core:450) - Starting myplex component.
2026-05-26 16:29:44,376 (7ff625e22b38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/system/messaging/clear_events/com.plexapp.agents.ofdb'
2026-05-26 16:29:44,376 (7ff629483808) :  DEBUG (core:450) - Starting notifications component.
2026-05-26 16:29:44,469 (7ff629483808) :  DEBUG (accessor:68) - Creating a new model access point for provider com.plexapp.agents.ofdb in namespace 'metadata'
2026-05-26 16:29:44,474 (7ff629483808) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/resourceHashes'
2026-05-26 16:29:44,477 (7ff629483808) :  ERROR (networking:197) - Error opening URL 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/resourceHashes'
2026-05-26 16:29:44,479 (7ff629483808) :  CRITICAL (runtime:1299) - Exception getting hosted resource hashes (most recent call last):
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/runtime.py", line 1293, in get_resource_hashes
    json = self._core.networking.http_request("http://127.0.0.1:32400/:/plugins/com.plexapp.system/resourceHashes", timeout=10).content
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 243, in content
    return self.__str__()
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 221, in __str__
    self.load()
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 159, in load
    f = self._opener.open(req, timeout=self._timeout)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

2026-05-26 16:29:44,485 (7ff625c02b38) :  DEBUG (services:265) - Plug-in is not daemonized - loading services from system
2026-05-26 16:29:44,485 (7ff629483808) :  DEBUG (runtime:1117) - Created a thread named 'load_all_services'
2026-05-26 16:29:44,485 (7ff625c02b38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_'
2026-05-26 16:29:44,486 (7ff629483808) :  DEBUG (runtime:1117) - Created a thread named 'get_server_info'
2026-05-26 16:29:44,486 (7ff629483808) :  DEBUG (core:150) - Finished starting framework core
2026-05-26 16:29:44,486 (7ff629483808) :  DEBUG (core:560) - Loading plug-in code
2026-05-26 16:29:44,487 (7ff625bbcb38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400'
2026-05-26 16:29:44,489 (7ff625bbcb38) :  DEBUG (core:538) - Machine identifier is 221bde274746a9ef64c7a3233f099e95c5506d7c
2026-05-26 16:29:44,489 (7ff625bbcb38) :  DEBUG (core:539) - Server version is 1.42.2.10122-3749b980e
2026-05-26 16:29:44,555 (7ff629483808) :  DEBUG (core:566) - Finished loading plug-in code
2026-05-26 16:29:44,577 (7ff629483808) :  DEBUG (agentkit:1132) - Creating new agent class called OFDBAgent
2026-05-26 16:29:44,596 (7ff629483808) :  DEBUG (agentkit:937) - Updating agent information: [{'media_types': ['Movie'], 'accepts_from': None, 'fallback_agent': None, 'contributes_to': ['com.plexapp.agents.imdb'], 'languages': ['de'], 'persist_stored_files': True, 'version': 0, 'primary_provider': False, 'prefs': True, 'name': 'OFDB'}]
2026-05-26 16:29:44,614 (7ff625c02b38) :  DEBUG (services:362) - Loaded services
2026-05-26 16:29:44,616 (7ff629483808) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X0FnZW50U2VydmljZTpVcGRhdGVJbmZv/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQo2CmRpY3QKbGlzdApkaWN0Cmxpc3QKbGlzdApsaXN0CjIKczIzCmNvbS5wbGV4YXBwLmFnZW50cy5vZmRiczEwCmlkZW50aWZpZXJyMQpzMTAKYWdlbnRfaW5mbzEKcjIKMTAKcjMKczExCm1lZGlhX3R5cGVzbnMxMgphY2NlcHRzX2Zyb21uczE0CmZhbGxiYWNrX2FnZW50cjQKczE0CmNvbnRyaWJ1dGVzX3RvcjUKczkKbGFuZ3VhZ2VzYjFzMjAKcGVyc2lzdF9zdG9yZWRfZmlsZXNpMApzNwp2ZXJzaW9uYjBzMTYKcHJpbWFyeV9wcm92aWRlcmIxczUKcHJlZnNzNApPRkRCczQKbmFtZTEKczUKTW92aWUxCnMyMwpjb20ucGxleGFwcC5hZ2VudHMuaW1kYjEKczIKZGVyMAo_'
2026-05-26 16:29:44,618 (7ff625bdfb38) :  DEBUG (services:438) - No shared code to load
2026-05-26 16:29:44,623 (7ff629483808) :  DEBUG (agentkit:1132) - Creating new agent class called OFDBAgent
2026-05-26 16:29:44,623 (7ff629483808) :  DEBUG (agentkit:937) - Updating agent information: [{'media_types': ['Movie'], 'accepts_from': None, 'fallback_agent': None, 'contributes_to': ['com.plexapp.agents.imdb'], 'languages': ['de'], 'persist_stored_files': True, 'version': 0, 'primary_provider': False, 'prefs': True, 'name': 'OFDB'}, {'media_types': ['TV_Show'], 'accepts_from': None, 'fallback_agent': None, 'contributes_to': ['com.plexapp.agents.thetvdb'], 'languages': ['de'], 'persist_stored_files': True, 'version': 0, 'primary_provider': False, 'prefs': True, 'name': 'OFDB'}]
2026-05-26 16:29:44,624 (7ff629483808) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X0FnZW50U2VydmljZTpVcGRhdGVJbmZv/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxMApkaWN0Cmxpc3QKZGljdApsaXN0Cmxpc3QKbGlzdApkaWN0Cmxpc3QKbGlzdApsaXN0CjIKczIzCmNvbS5wbGV4YXBwLmFnZW50cy5vZmRiczEwCmlkZW50aWZpZXJyMQpzMTAKYWdlbnRfaW5mbzIKcjIKcjYKMTAKcjMKczExCm1lZGlhX3R5cGVzbnMxMgphY2NlcHRzX2Zyb21uczE0CmZhbGxiYWNrX2FnZW50cjQKczE0CmNvbnRyaWJ1dGVzX3RvcjUKczkKbGFuZ3VhZ2VzYjFzMjAKcGVyc2lzdF9zdG9yZWRfZmlsZXNpMApzNwp2ZXJzaW9uYjBzMTYKcHJpbWFyeV9wcm92aWRlcmIxczUKcHJlZnNzNApPRkRCczQKbmFtZTEKczUKTW92aWUxCnMyMwpjb20ucGxleGFwcC5hZ2VudHMuaW1kYjEKczIKZGUxMApyNwpzMTEKbWVkaWFfdHlwZXNuczEyCmFjY2VwdHNfZnJvbW5zMTQKZmFsbGJhY2tfYWdlbnRyOApzMTQKY29udHJpYnV0ZXNfdG9yOQpzOQpsYW5ndWFnZXNiMXMyMApwZXJzaXN0X3N0b3JlZF9maWxlc2kwCnM3CnZlcnNpb25iMHMxNgpwcmltYXJ5X3Byb3ZpZGVyYjFzNQpwcmVmc3M0Ck9GREJzNApuYW1lMQpzNwpUVl9TaG93MQpzMjYKY29tLnBsZXhhcHAuYWdlbnRzLnRoZXR2ZGIxCnMyCmRlcjAK'
2026-05-26 16:29:44,629 (7ff629483808) :  INFO (core:611) - Started plug-in
2026-05-26 16:29:44,630 (7ff629483808) :  DEBUG (socketinterface:160) - Starting socket server
2026-05-26 16:29:44,630 (7ff629483808) :  DEBUG (runtime:1117) - Created a thread named 'start'
2026-05-26 16:29:44,630 (7ff629483808) :  INFO (socketinterface:184) - Socket server started on port 38711
2026-05-26 16:29:44,630 (7ff629483808) :  INFO (pipeinterface:25) - Entering run loop
2026-05-26 16:29:44,630 (7ff629483808) :  DEBUG (runtime:717) - Handling request GET /:/prefixes
2026-05-26 16:29:44,631 (7ff629483808) :  DEBUG (runtime:814) - Found route matching /:/prefixes
2026-05-26 16:29:44,632 (7ff629483808) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 148 bytes
2026-05-26 16:29:44,633 (7ff6259dcb38) :  DEBUG (runtime:717) - Handling request GET /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlNlYXJjaA__/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoyCmRpY3QKZGljdAo2CnMyCmRlczQKbGFuZ2IwczYKbWFudWFsYjBzNwpwcmltYXJ5aTAKczcKdmVyc2lvbnIxCnM2Cmt3YXJnc3M1Ck1vdmllczEwCm1lZGlhX3R5cGU1Cm5zOApwYXJlbnRJRHM0Mwpjb20ucGxleGFwcC5hZ2VudHMuaW1kYjovL3R0MTM0MTMzOD9sYW5nPWRlczQKZ3VpZGIxczUKZm9yY2VzMjMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGJzMTMKcHJpbWFyeV9hZ2VudHM2CjIzNjU0MXMyCmlkcjAK
2026-05-26 16:29:44,644 (7ff6259dcb38) :  DEBUG (runtime:814) - Found route matching /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlNlYXJjaA__/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoyCmRpY3QKZGljdAo2CnMyCmRlczQKbGFuZ2IwczYKbWFudWFsYjBzNwpwcmltYXJ5aTAKczcKdmVyc2lvbnIxCnM2Cmt3YXJnc3M1Ck1vdmllczEwCm1lZGlhX3R5cGU1Cm5zOApwYXJlbnRJRHM0Mwpjb20ucGxleGFwcC5hZ2VudHMuaW1kYjovL3R0MTM0MTMzOD9sYW5nPWRlczQKZ3VpZGIxczUKZm9yY2VzMjMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGJzMTMKcHJpbWFyeV9hZ2VudHM2CjIzNjU0MXMyCmlkcjAK
2026-05-26 16:29:44,644 (7ff6259dcb38) :  INFO (agentkit:961) - Searching for matches for {'id': '236541', 'guid': 'com.plexapp.agents.imdb://tt1341338?lang=de', 'force': True, 'primary_agent': 'com.plexapp.agents.imdb', 'parentID': None}
2026-05-26 16:29:44,645 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/library/metadata/236541/tree'
2026-05-26 16:29:44,690 (7ff6259dcb38) :  DEBUG (accessor:68) - Creating a new read-only model access point for provider com.plexapp.agents.imdb in namespace 'metadata'
2026-05-26 16:29:44,693 (7ff6259dcb38) :  DEBUG (model:32) - Loading model with GUID com.plexapp.agents.imdb://tt1341338?lang=de
2026-05-26 16:29:44,694 (7ff6259dcb38) :  DEBUG (model:234) - Deserializing from /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/3/a4af91bb5746f2e9342c320be690633453f17c3.bundle/Contents/com.plexapp.agents.imdb/Info.xml
2026-05-26 16:29:44,711 (7ff6259dcb38) :  DEBUG (runtime:88) - Sending packed state data (104 bytes)
2026-05-26 16:29:44,711 (7ff6259dcb38) :  DEBUG (runtime:924) - Response: [200] str, 608 bytes
2026-05-26 16:29:44,720 (7ff6259dcb38) :  DEBUG (runtime:717) - Handling request GET /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlVwZGF0ZU1ldGFkYXRh/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMTAKczIKZGVzNApsYW5nYjFzNQpmb3JjZWIwczgKcGVyaW9kaWNzNgoyMzY1NDFzNApkYmlkaTAKczcKdmVyc2lvbm5zMTAKcGFyZW50R1VJRG5zOApwYXJlbnRJRHM1Ck1vdmllczEwCm1lZGlhX3R5cGVzNDMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGI6Ly90dDEzNDEzMzg%40bGFuZz1kZXM0Cmd1aWRzOQp0dDEzNDEzMzhzMgppZHIwCg__
2026-05-26 16:29:44,721 (7ff6259dcb38) :  DEBUG (runtime:814) - Found route matching /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlVwZGF0ZU1ldGFkYXRh/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMTAKczIKZGVzNApsYW5nYjFzNQpmb3JjZWIwczgKcGVyaW9kaWNzNgoyMzY1NDFzNApkYmlkaTAKczcKdmVyc2lvbm5zMTAKcGFyZW50R1VJRG5zOApwYXJlbnRJRHM1Ck1vdmllczEwCm1lZGlhX3R5cGVzNDMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGI6Ly90dDEzNDEzMzg@bGFuZz1kZXM0Cmd1aWRzOQp0dDEzNDEzMzhzMgppZHIwCg__
2026-05-26 16:29:44,722 (7ff6259dcb38) :  DEBUG (model:32) - Loading model with GUID com.plexapp.agents.imdb://tt1341338?lang=de
2026-05-26 16:29:44,722 (7ff6259dcb38) :  DEBUG (model:234) - Deserializing from /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/3/a4af91bb5746f2e9342c320be690633453f17c3.bundle/Contents/com.plexapp.agents.ofdb/Info.xml
2026-05-26 16:29:44,743 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/library/metadata/236541/tree'
2026-05-26 16:29:44,761 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'https://www.ofdb.de/quicksearch.php?term=tt1341338'
2026-05-26 16:29:44,880 (7ff6259dcb38) :  CRITICAL (agentkit:1095) - Exception in the update function of agent named 'OFDB', called with guid 'com.plexapp.agents.imdb://tt1341338?lang=de' (most recent call last):
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/agentkit.py", line 1093, in _update
    agent.update(obj, media, lang, **kwargs)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Plug-ins/OFDB.bundle/Contents/Code/__init__.py", line 41, in update
    get_results(metadata)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Plug-ins/OFDB.bundle/Contents/Code/__init__.py", line 99, in get_results
    json_str = json_ofdb.content
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 243, in content
    return self.__str__()
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 221, in __str__
    self.load()
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 159, in load
    f = self._opener.open(req, timeout=self._timeout)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 447, in _open
    '_open', req)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 1241, in https_open
    context=self._context)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 1198, in do_open
    raise URLError(err)
URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)>

2026-05-26 16:29:44,880 (7ff6259dcb38) :  DEBUG (model:229) - Serializing to /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/3/a4af91bb5746f2e9342c320be690633453f17c3.bundle/Contents/com.plexapp.agents.ofdb/Info.xml
2026-05-26 16:29:44,882 (7ff6259dcb38) :  DEBUG (runtime:88) - Sending packed state data (104 bytes)
2026-05-26 16:29:44,882 (7ff6259dcb38) :  DEBUG (runtime:924) - Response: [200] str, 16 bytes
2026-05-26 16:30:09,656 (7ff6259dcb38) :  DEBUG (runtime:717) - Handling request GET /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlNlYXJjaA__/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoyCmRpY3QKZGljdAo2CnMyCmRlczQKbGFuZ2IwczYKbWFudWFsYjBzNwpwcmltYXJ5aTAKczcKdmVyc2lvbnIxCnM2Cmt3YXJnc3M1Ck1vdmllczEwCm1lZGlhX3R5cGU1Cm5zOApwYXJlbnRJRHM0Mwpjb20ucGxleGFwcC5hZ2VudHMuaW1kYjovL3R0MTM0MTMzOD9sYW5nPWRlczQKZ3VpZGIxczUKZm9yY2VzMjMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGJzMTMKcHJpbWFyeV9hZ2VudHM2CjIzNjU0MXMyCmlkcjAK
2026-05-26 16:30:09,656 (7ff6259dcb38) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2026-05-26 16:30:09,657 (7ff6259dcb38) :  DEBUG (runtime:814) - Found route matching /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlNlYXJjaA__/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoyCmRpY3QKZGljdAo2CnMyCmRlczQKbGFuZ2IwczYKbWFudWFsYjBzNwpwcmltYXJ5aTAKczcKdmVyc2lvbnIxCnM2Cmt3YXJnc3M1Ck1vdmllczEwCm1lZGlhX3R5cGU1Cm5zOApwYXJlbnRJRHM0Mwpjb20ucGxleGFwcC5hZ2VudHMuaW1kYjovL3R0MTM0MTMzOD9sYW5nPWRlczQKZ3VpZGIxczUKZm9yY2VzMjMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGJzMTMKcHJpbWFyeV9hZ2VudHM2CjIzNjU0MXMyCmlkcjAK
2026-05-26 16:30:09,657 (7ff6259dcb38) :  INFO (agentkit:961) - Searching for matches for {'id': '236541', 'guid': 'com.plexapp.agents.imdb://tt1341338?lang=de', 'force': True, 'primary_agent': 'com.plexapp.agents.imdb', 'parentID': None}
2026-05-26 16:30:09,657 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/library/metadata/236541/tree'
2026-05-26 16:30:09,663 (7ff6259dcb38) :  DEBUG (model:32) - Loading model with GUID com.plexapp.agents.imdb://tt1341338?lang=de
2026-05-26 16:30:09,663 (7ff6259dcb38) :  DEBUG (model:234) - Deserializing from /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/3/a4af91bb5746f2e9342c320be690633453f17c3.bundle/Contents/com.plexapp.agents.imdb/Info.xml
2026-05-26 16:30:09,675 (7ff6259dcb38) :  DEBUG (runtime:88) - Sending packed state data (104 bytes)
2026-05-26 16:30:09,675 (7ff6259dcb38) :  DEBUG (runtime:924) - Response: [200] str, 608 bytes
2026-05-26 16:30:09,678 (7ff6259dcb38) :  DEBUG (runtime:717) - Handling request GET /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlVwZGF0ZU1ldGFkYXRh/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMTAKczIKZGVzNApsYW5nYjFzNQpmb3JjZWIwczgKcGVyaW9kaWNzNgoyMzY1NDFzNApkYmlkaTAKczcKdmVyc2lvbm5zMTAKcGFyZW50R1VJRG5zOApwYXJlbnRJRHM1Ck1vdmllczEwCm1lZGlhX3R5cGVzNDMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGI6Ly90dDEzNDEzMzg%40bGFuZz1kZXM0Cmd1aWRzOQp0dDEzNDEzMzhzMgppZHIwCg__
2026-05-26 16:30:09,679 (7ff6259dcb38) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2026-05-26 16:30:09,680 (7ff6259dcb38) :  DEBUG (runtime:814) - Found route matching /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlVwZGF0ZU1ldGFkYXRh/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMTAKczIKZGVzNApsYW5nYjFzNQpmb3JjZWIwczgKcGVyaW9kaWNzNgoyMzY1NDFzNApkYmlkaTAKczcKdmVyc2lvbm5zMTAKcGFyZW50R1VJRG5zOApwYXJlbnRJRHM1Ck1vdmllczEwCm1lZGlhX3R5cGVzNDMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGI6Ly90dDEzNDEzMzg@bGFuZz1kZXM0Cmd1aWRzOQp0dDEzNDEzMzhzMgppZHIwCg__
2026-05-26 16:30:09,680 (7ff6259dcb38) :  DEBUG (model:32) - Loading model with GUID com.plexapp.agents.imdb://tt1341338?lang=de
2026-05-26 16:30:09,680 (7ff6259dcb38) :  DEBUG (model:234) - Deserializing from /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/3/a4af91bb5746f2e9342c320be690633453f17c3.bundle/Contents/com.plexapp.agents.ofdb/Info.xml
2026-05-26 16:30:09,681 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/library/metadata/236541/tree'
2026-05-26 16:30:09,689 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'https://www.ofdb.de/quicksearch.php?term=tt1341338'
2026-05-26 16:30:09,778 (7ff6259dcb38) :  CRITICAL (agentkit:1095) - Exception in the update function of agent named 'OFDB', called with guid 'com.plexapp.agents.imdb://tt1341338?lang=de' (most recent call last):
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/agentkit.py", line 1093, in _update
    agent.update(obj, media, lang, **kwargs)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Plug-ins/OFDB.bundle/Contents/Code/__init__.py", line 41, in update
    get_results(metadata)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Plug-ins/OFDB.bundle/Contents/Code/__init__.py", line 99, in get_results
    json_str = json_ofdb.content
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 243, in content
    return self.__str__()
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 221, in __str__
    self.load()
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 159, in load
    f = self._opener.open(req, timeout=self._timeout)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 447, in _open
    '_open', req)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 1241, in https_open
    context=self._context)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 1198, in do_open
    raise URLError(err)
URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)>

2026-05-26 16:30:09,779 (7ff6259dcb38) :  DEBUG (model:229) - Serializing to /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/3/a4af91bb5746f2e9342c320be690633453f17c3.bundle/Contents/com.plexapp.agents.ofdb/Info.xml
2026-05-26 16:30:09,780 (7ff6259dcb38) :  DEBUG (runtime:88) - Sending packed state data (104 bytes)
2026-05-26 16:30:09,780 (7ff6259dcb38) :  DEBUG (runtime:924) - Response: [200] str, 16 bytes
2026-05-26 16:31:23,531 (7ff6259dcb38) :  DEBUG (runtime:717) - Handling request GET /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlNlYXJjaA__/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoyCmRpY3QKZGljdAo2CnMyCmRlczQKbGFuZ2IwczYKbWFudWFsYjBzNwpwcmltYXJ5aTAKczcKdmVyc2lvbnIxCnM2Cmt3YXJnc3M1Ck1vdmllczEwCm1lZGlhX3R5cGU1Cm5zOApwYXJlbnRJRHM0Mwpjb20ucGxleGFwcC5hZ2VudHMuaW1kYjovL3R0MTI3Mjg3OD9sYW5nPWRlczQKZ3VpZGIxczUKZm9yY2VzMjMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGJzMTMKcHJpbWFyeV9hZ2VudHMzCjEyM3MyCmlkcjAK
2026-05-26 16:31:23,532 (7ff6259dcb38) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2026-05-26 16:31:23,532 (7ff6259dcb38) :  DEBUG (runtime:814) - Found route matching /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlNlYXJjaA__/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoyCmRpY3QKZGljdAo2CnMyCmRlczQKbGFuZ2IwczYKbWFudWFsYjBzNwpwcmltYXJ5aTAKczcKdmVyc2lvbnIxCnM2Cmt3YXJnc3M1Ck1vdmllczEwCm1lZGlhX3R5cGU1Cm5zOApwYXJlbnRJRHM0Mwpjb20ucGxleGFwcC5hZ2VudHMuaW1kYjovL3R0MTI3Mjg3OD9sYW5nPWRlczQKZ3VpZGIxczUKZm9yY2VzMjMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGJzMTMKcHJpbWFyeV9hZ2VudHMzCjEyM3MyCmlkcjAK
2026-05-26 16:31:23,533 (7ff6259dcb38) :  INFO (agentkit:961) - Searching for matches for {'id': '123', 'guid': 'com.plexapp.agents.imdb://tt1272878?lang=de', 'force': True, 'primary_agent': 'com.plexapp.agents.imdb', 'parentID': None}
2026-05-26 16:31:23,533 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/library/metadata/123/tree'
2026-05-26 16:31:23,539 (7ff6259dcb38) :  DEBUG (model:32) - Loading model with GUID com.plexapp.agents.imdb://tt1272878?lang=de
2026-05-26 16:31:23,539 (7ff6259dcb38) :  DEBUG (model:234) - Deserializing from /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/8/8c31cf74d64d9e906591cf1d89cf58ffceb6f35.bundle/Contents/com.plexapp.agents.imdb/Info.xml
2026-05-26 16:31:23,547 (7ff6259dcb38) :  DEBUG (runtime:88) - Sending packed state data (104 bytes)
2026-05-26 16:31:23,547 (7ff6259dcb38) :  DEBUG (runtime:924) - Response: [200] str, 608 bytes
2026-05-26 16:31:23,555 (7ff6259dcb38) :  DEBUG (runtime:717) - Handling request GET /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlVwZGF0ZU1ldGFkYXRh/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMTAKczIKZGVzNApsYW5nYjFzNQpmb3JjZWIwczgKcGVyaW9kaWNzMwoxMjNzNApkYmlkaTAKczcKdmVyc2lvbm5zMTAKcGFyZW50R1VJRG5zOApwYXJlbnRJRHM1Ck1vdmllczEwCm1lZGlhX3R5cGVzNDMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGI6Ly90dDEyNzI4Nzg%40bGFuZz1kZXM0Cmd1aWRzOQp0dDEyNzI4NzhzMgppZHIwCg__
2026-05-26 16:31:23,556 (7ff6259dcb38) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2026-05-26 16:31:23,557 (7ff6259dcb38) :  DEBUG (runtime:814) - Found route matching /:/plugins/com.plexapp.agents.ofdb/messaging/function/X0FnZW50S2l0OlVwZGF0ZU1ldGFkYXRh/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMTAKczIKZGVzNApsYW5nYjFzNQpmb3JjZWIwczgKcGVyaW9kaWNzMwoxMjNzNApkYmlkaTAKczcKdmVyc2lvbm5zMTAKcGFyZW50R1VJRG5zOApwYXJlbnRJRHM1Ck1vdmllczEwCm1lZGlhX3R5cGVzNDMKY29tLnBsZXhhcHAuYWdlbnRzLmltZGI6Ly90dDEyNzI4Nzg@bGFuZz1kZXM0Cmd1aWRzOQp0dDEyNzI4NzhzMgppZHIwCg__
2026-05-26 16:31:23,557 (7ff6259dcb38) :  DEBUG (model:32) - Loading model with GUID com.plexapp.agents.imdb://tt1272878?lang=de
2026-05-26 16:31:23,557 (7ff6259dcb38) :  DEBUG (model:234) - Deserializing from /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/8/8c31cf74d64d9e906591cf1d89cf58ffceb6f35.bundle/Contents/com.plexapp.agents.ofdb/Info.xml
2026-05-26 16:31:23,567 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'http://127.0.0.1:32400/library/metadata/123/tree'
2026-05-26 16:31:23,589 (7ff6259dcb38) :  DEBUG (networking:144) - Requesting 'https://www.ofdb.de/quicksearch.php?term=tt1272878'
2026-05-26 16:31:23,686 (7ff6259dcb38) :  CRITICAL (agentkit:1095) - Exception in the update function of agent named 'OFDB', called with guid 'com.plexapp.agents.imdb://tt1272878?lang=de' (most recent call last):
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/agentkit.py", line 1093, in _update
    agent.update(obj, media, lang, **kwargs)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Plug-ins/OFDB.bundle/Contents/Code/__init__.py", line 41, in update
    get_results(metadata)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Plug-ins/OFDB.bundle/Contents/Code/__init__.py", line 99, in get_results
    json_str = json_ofdb.content
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 243, in content
    return self.__str__()
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 221, in __str__
    self.load()
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Plug-ins-3749b980e/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 159, in load
    f = self._opener.open(req, timeout=self._timeout)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 447, in _open
    '_open', req)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 1241, in https_open
    context=self._context)
  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Resources/Python/python27.zip/urllib2.py", line 1198, in do_open
    raise URLError(err)
URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)>

2026-05-26 16:31:23,686 (7ff6259dcb38) :  DEBUG (model:229) - Serializing to /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Movies/8/8c31cf74d64d9e906591cf1d89cf58ffceb6f35.bundle/Contents/com.plexapp.agents.ofdb/Info.xml
2026-05-26 16:31:23,688 (7ff6259dcb38) :  DEBUG (runtime:88) - Sending packed state data (104 bytes)
2026-05-26 16:31:23,688 (7ff6259dcb38) :  DEBUG (runtime:924) - Response: [200] str, 16 bytes

I see a failure to get ressource hashes, I see a 404 error, I see certification verify failures. The quicksearch URL referenced works inside a browser, so it’s not that something has changed on the scraping side of the code. Can you please help - even if official support stopped long ago? There must be a cause of this… I am helpless without some insights. Thank you very much for possibly considering this. I know that your time is precious…

The resourcehash error you can ignore, it’s a legacy service that hasn’t existed in years.

This is failing with the calls to https://www.ofdb.de

Why this is happening I’m not sure, as the legacy agents are no longer supported this is not something we’d look into. Maybe somebody from the community could help.

Website https://www.ofdb.de/ seems to be down

No it’s not…

https://downforeveryoneorjustme.com/ofdb.de

Hmm…100% down for me…

Maybe a German site only, and you are running a VPN?

Thx for clearing this up.

It says: URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)>

for the following page:

Requesting ā€˜https://www.ofdb.de/quicksearch.php?term=tt1341338’

When opening that page in Chrome, I see that its valid certificate is from May 14th:

Ausgestellt am Donnerstag, 14. Mai 2026 um 02:00:00
Gültig bis Sonntag, 29. November 2026 um 00:59:59

This could well be the date and time it stopped working (my business trip started on May 15th).

@dane22 Thank you. It is a German web page, but it is available world-wide. I am not using a VPN and my server would be in Germany, too. This is probably not the cause of the problem.

Ahh…

Then most likely the certificate is using newer Chipers that are not supported by the old legacy Python 2.7

Edit: But no way of knowing for sure, since I can not access the darn site :wink:

Would I be able to test that?

Sadly haven’t touched the old Python 2.7 for years, since it was EOL in 20200101
And since the cert was issued on 20260514, I would bet my life savings on this been the issue

I do not know the code, but if it use the request api, maybe change the code to something like:

requests.get('https://www.ofdb.de', verify=False)

And when said, you are sadly beating a dead horse here, so I STRONGLY suggest you look for an alternative instead

I’m in the US and I can get to it.

Sure, I am working on a NodeJS version of it. Not production ready yet, though.

@rossinior

Does the date it stopped working matches the date of the new certificate?

Well, may match. I haven’t tried matching since May 15th at least… and I don’t know if I tried this on May 14th… but this is a possibility.

Well, then I would guess you found the reason why it stopped working, sorry

Here’s the relevant part of the code:

import re, urllib

OFDB_BASE_URL = 'https://www.ofdb.de'
#OFDB_SEARCH_URL = '%s/view.php?page=suchergebnis&Kat=IMDb&SText=%%s' % (OFDB_BASE_URL)
OFDB_SEARCH_URL = '%s/imdb.php?id=%%s' % (OFDB_BASE_URL)
OFDB_QUICKSEARCH_URL = '%s/quicksearch.php?term=%%s' % (OFDB_BASE_URL)
OFDB_MOVIE_URL = '%s/film/%%s' % (OFDB_BASE_URL)
OFDB_PLOT_URL = '%s/film/%%s/plot/' % (OFDB_BASE_URL)
OFDB_VERSION_URL = '%s/fassung/%%s' % (OFDB_BASE_URL)
................
def Start():

  ## HTTP.Headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0'
  HTTP.Headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36'

...........

def get_results(metadata):

  json_ofdb = HTTP.Request(OFDB_QUICKSEARCH_URL % (metadata.id), verify=False, sleep=1.0, cacheTime=CACHE_1WEEK)
  json_str = json_ofdb.content

....

The verify keyword was just added after your post, the line looked like this before:

json_ofdb = HTTP.Request(OFDB_QUICKSEARCH_URL % (metadata.id), sleep=1.0, cacheTime=CACHE_1WEEK)

Unfortunately, setting ā€œverifyā€ as a keyword does not work:

  File "/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Pl
ug-ins/OFDB.bundle/Contents/Code/__init__.py", line 98, in get_results
    json_ofdb = HTTP.Request(OFDB_QUICKSEARCH_URL % (metadata.id), verify=False,
 sleep=1.0, cacheTime=CACHE_1WEEK)
TypeError: Request() got an unexpected keyword argument 'verify'

You are using the old Plex Framework HTTP request, that did not support this

You’ll need to use the native Python 2.7 Request API I guess, but as said multiple times, no longer supported, and will step out of this thread now, sorry

Thx, @dane22 …
Though the requests module isn’t present in Plex’ python environment and not easy to be installed, I was able to use urllib2’s urlopen request with an ssl context as temporary fix for that agent.

This gives me some time to work on the most actual generation of that agent.

Thank you all for helping.