pannal / Kitana

A responsive Plex plugin web frontend
Other
496 stars 25 forks source link

PMS Plugin error endpoint 404 (broken in PMS 1.22.0.4145) #55

Closed LePastis closed 3 years ago

LePastis commented 3 years ago

Hi there,

Kitana itself works, I can loging and list servers but when I choose 1 of the address of my server I have a HTTP 500 error :

500 Internal Server Error The server encountered an unexpected condition which prevented it from fulfilling the request.

Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 170, in _new_conn (self._dns_host, self.port), self.timeout, **extra_kw File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 73, in create_connection for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): File "/usr/local/lib/python3.7/socket.py", line 752, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno -2] Name or service not known

I joint full page (HTTP_500.log)

And on the plex log I have : Mar 01, 2021 12:28:25.364 [6888] ERROR - getaddrinfo(192-168-x-xxx.abcdefghijklmnopqrstuvwxyz012345.plex.direct) failed: 11001 Mar 01, 2021 12:28:31.632 [7660] ERROR - Error issuing curl_easy_perform(handle): 28

I'am use the docker image of Kitana (0.4.0-2), I try from same network and same machine. I try too local and remote IP (192.168.X.XXX:32400 and 78.211.XXX.XXX:12861).

Any help is appreciated.

ukdtom commented 3 years ago

Curl Error 28 means a DNS timeout Try and set the docker to use Google DNS (8.8.8.8)

rex099 commented 3 years ago

Hmm I'm getting the same issue, and my DNS in my router is set to 8.8.8.8 backup 8.8.4.4 and 2nd backup 1.1.1.1. How would I go about forcing a DNS in the docker?

Also If im not mistaken this only started happening after updating Plex docker. So maybe something they change in the latest plexpass update?

LePastis commented 3 years ago

My plex server not run on Docker, it's on dedicate machine.

I try to set Google DNS on my docker client and I have the same result.

@rex099, I apply last version of plex this morning but I don't try to use Kitana before. So I cannot validate this hypothesis

LePastis commented 3 years ago

I just try to downgrade Plex server on 1.20.3.3483 and I have the same issue

agneevX commented 3 years ago

Yeah I'm seeing the same issue and I tried just about everything.

guidbp commented 3 years ago

Same error here ... I tried to downgrade Plex Server and Kitana (standalone), but didn't work

rg9400 commented 3 years ago

I am able to select the server, but when clicking on any of the plugins, I get the 500 error. Only started happening recently.

agneevX commented 3 years ago

Could this be a HTTPS thing that Plex started to enforce recently?

LePastis commented 3 years ago

I try to disabled HTTPS on my plex server but I have the same issuz

Le mer. 3 mars 2021 à 19:03, Agneev Mukherjee notifications@github.com a écrit :

Could this be a HTTPS think that Plex started to enforce recently?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pannal/Kitana/issues/55#issuecomment-789941455, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGP3NENGVOFVK3VPGLC2XLTBZ2YJANCNFSM4YMMPAAA .

-- Matthieu TRUCHET

ghost commented 3 years ago

Also seeing this error. PMS ver 1.21.4.4079

weirdcrap commented 3 years ago

also seeing 500 errors trying to use any plugin and curl error 28 in the plex server log. I am running in docker but no other dockers have DNS issues.

PMS v1.22.0.4145

RickDB commented 3 years ago

Same issue here with PMS 1.22.0.4145

ghost commented 3 years ago

This is NOT an issue on plexinc/pms-docker:1.21.3.4046-3c1c83ba4.

pannal commented 3 years ago

Can you guys try running Kitana outside Docker? Just to make sure this isn't a generic problem.

Apart from that: https://forums.plex.tv/t/failed-to-reach-server/163475

Edit: I'll also need more logs from you guys, I've only seen the one from the OP. Edit 2: And ideally your network setup and/or docker compose files (if you use it). Edit 3: Also, please try entering the Kitana container and try pinging domains.

weirdcrap commented 3 years ago

I can try, ill check out the github instructions.

Just tried the trakt plugin on my local server again and here is:

My kitana log: https://pastebin.com/mUXVwKja My PMS log: https://pastebin.com/ATwGy4Y3

Sorry about all the SSDP "noise" in my PMS log, idk what its about or how to make it stop. That IP doesnt even exist on my network currently.

pannal commented 3 years ago

@weirdcrap this is unrelated to DNS I think. Seems like the Trakt plugin returns the 500. Kitana just forwards the error. Yours seems to be a duplicate of #54

weirdcrap commented 3 years ago

@weirdcrap this is unrelated to DNS I think. Seems like the Trakt plugin returns the 500. Kitana just forwards the error. Yours seems to be a duplicate of #54

Indeed you are correct, I didn't see that issue. Just like him my only two plugins are trakt/webtools. I get that webtools has its own interface to serve the UI but shouldn't it also work through Kitana? IIRC it did before.

I'll see if there's an issue open about the trakt plugin on its github. Thanks!

pannal commented 3 years ago

Yeah I think I'll try and convey the "plugin threw an error" exception a bit better in the next release.

WebTools shouldn't work btw, it serves its own interface on a different port. Not sure if it tries to redirect on the plugin endpoint.

ukdtom commented 3 years ago

WebTools only had it's prefs as a regular plugin thingy. and that will still work in PMS Client. The rest of the interface is not a plugin, but served as a website by the framework build-in webserver

LePastis commented 3 years ago

Thank for your reply. I see the same error on trakt log as the one in issue #54.

I posted an issue on trakt plugin https://github.com/trakt/Plex-Trakt-Scrobbler/issues/592

rg9400 commented 3 years ago

Are we sure this is not happening with all plugins? Nothing changed in the Trakt plugin, and it works perfectly fine via Kitana when you downgrade PMS. I cannot access Export Tools via Kitana either now, and I think someone else mentioned that they cannot access SubZero.

While this can be a specific issue with Trakt, I just want to verify that it isn't happening across the board. Is it not possible that Plex changed the interface used to access plugins, or removed it all together, in this version?

pannal commented 3 years ago

Not sure tbh, but it works perfectly for my two servers (one local one remote). Running PMS 1.22.0.4145. The remote one runs 1.21.4.4054, let me update that one quickly.

Edit: Remote one works as well on 1.22.0.4145. I'm not using the .plex.direct stuff, though.

pannal commented 3 years ago

Has anyone tried a direct connection to the server via command line, without going via the Plex HTTPS connection? Just to rule out that it's anything HTTPS related.

Edit: Tunnel to the machine would work as well, then accessing 127.0.0.1:32400/plugin/path?X-Plex-Token=XXXXXXXXXXX

rg9400 commented 3 years ago

127.0.0.1:32400/plugin/path?X-Plex-Token=XXXXXXXXXXX

This gives me a 404

cank79 commented 3 years ago

http://where_kitana_running_ip:31337/video/trakt/sync/ its worked for me. hope works for all.

pannal commented 3 years ago

127.0.0.1:32400/plugin/path?X-Plex-Token=XXXXXXXXXXX

This gives me a 404

Yeah because that was an example. For Sub-Zero this would be /video/subzero, for trakt probably /video/trakt.

http://where_kitana_running_ip:31337/video/trakt/sync/ its worked for me. hope works for all.

This returned something? Do you have/have you had the issue?

pannal commented 3 years ago

Wait, I can reproduce this locally with Twitch and IPTV. Only Sub-Zero works for me right now.

Twitch and IPTV also show this:

2021-03-06 23:40:40,113 (7f315ffff700) :  DEBUG (networking:143) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjgKY29tLnBsZXhhcHAucGx1Z2lucy50d2l0Y2h0dnMxMAppZGVudGlmaWVycjAK'
2021-03-06 23:40:40,123 (7f315ffff700) :  ERROR (networking:196) - Error opening URL 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjgKY29tLnBsZXhhcHAucGx1Z2lucy50d2l0Y2h0dnMxMAppZGVudGlmaWVycjAK'
2021-03-06 23:40:40,124 (7f315ffff700) :  CRITICAL (runtime:889) - Exception (most recent call last):
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/runtime.py", line 843, in handle_request
    result = f(**d)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/handlers/base.py", line 122, in call
    identifier = self._core.identifier
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/messaging.py", line 86, in call_external_function
    packed_result = self._core.networking.http_request(url, cacheTime=0, timeout=None, immediate=True).content
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 346, in http_request
    return HTTPRequest(self._core, url, data, h, url_cache, encoding, errors, timeout, immediate, sleep, opener, follow_redirects, method)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 118, in __init__
    self.load()
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 158, in load
    f = self._opener.open(req, timeout=self._timeout)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found
cank79 commented 3 years ago

http://where_kitana_running_ip:31337/video/trakt/sync/ its worked for me. hope works for all.

This returned something? Do you have/have you had the issue?

yes i had same issue 500 Server Error: Internal Server Error for url if i select trakt.tv from drop down menu in kitana. i downgraded plex version to 1.21.3.4021 and i can run kitana again and i saw the url above. upgrade plex and reproduce error then i tried url and works.

pannal commented 3 years ago

Confirmed, downgrading to 1.21.3.4016 makes those plugins work again. I'll check with the Plex guys.

cank79 commented 3 years ago

Wait, I can reproduce this locally with Twitch and IPTV. Only Sub-Zero works for me right now.

Twitch and IPTV also show this:

2021-03-06 23:40:40,113 (7f315ffff700) :  DEBUG (networking:143) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjgKY29tLnBsZXhhcHAucGx1Z2lucy50d2l0Y2h0dnMxMAppZGVudGlmaWVycjAK'
2021-03-06 23:40:40,123 (7f315ffff700) :  ERROR (networking:196) - Error opening URL 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjgKY29tLnBsZXhhcHAucGx1Z2lucy50d2l0Y2h0dnMxMAppZGVudGlmaWVycjAK'
2021-03-06 23:40:40,124 (7f315ffff700) :  CRITICAL (runtime:889) - Exception (most recent call last):
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/runtime.py", line 843, in handle_request
    result = f(**d)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/handlers/base.py", line 122, in call
    identifier = self._core.identifier
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/messaging.py", line 86, in call_external_function
    packed_result = self._core.networking.http_request(url, cacheTime=0, timeout=None, immediate=True).content
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 346, in http_request
    return HTTPRequest(self._core, url, data, h, url_cache, encoding, errors, timeout, immediate, sleep, opener, follow_redirects, method)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 118, in __init__
    self.load()
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 158, in load
    f = self._opener.open(req, timeout=self._timeout)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/plexmediaserver/Resources/Python/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

yes this is exact error log for trakt too.

pannal commented 3 years ago

Weird that Sub-Zero works, though.

cank79 commented 3 years ago

yes strangely only sub-zero works. but workaround for trakt enough for me now. because if you reinstall plex you will stuck about trigger trakt for sync. so you cant pull play history to plex. and its very bad for large libraries. anyway finally its synced and running again. thanks.

pannal commented 3 years ago

Here's a temporary fix:

/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/handlers# diff base.py base.py.bcp
117,124c117,125
<         self._core.log.debug('Checking if %s is broken', self._core.identifier)
<         broken, broken_reason = self._core.messaging.call_external_function(
<           '..system',
<           '_StoreService:IsChannelBroken',
<           kwargs = dict(
<             identifier = self._core.identifier
<           )
<         )
---
>         #self._core.log.debug('Checking if %s is broken', self._core.identifier)
>         #broken, broken_reason = self._core.messaging.call_external_function(
>         #  '..system',
>         #  '_StoreService:IsChannelBroken',
>         #  kwargs = dict(
>         #    identifier = self._core.identifier
>         #  )
>         #)
>         broken = False

I've looked at the current PMS Framework code - they've removed System.bundle/Contents/Code/storeservice.py which exposed the _StoreService:IsChannelBroken endpoint, which is called when plugins are called, but they didn't remove the code that called that endpoint. The above removes the call.

So yes, this is a PMS issue.

Edit: SubZero still works because it skips the check by returning a MediaContainer not an ObjectContainer.

cank79 commented 3 years ago

Here's a temporary fix:

/usr/lib/plexmediaserver/Resources/Plug-ins-0af3a4016/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/handlers# diff base.py base.py.bcp
117,124c117,125
<         self._core.log.debug('Checking if %s is broken', self._core.identifier)
<         broken, broken_reason = self._core.messaging.call_external_function(
<           '..system',
<           '_StoreService:IsChannelBroken',
<           kwargs = dict(
<             identifier = self._core.identifier
<           )
<         )
---
>         #self._core.log.debug('Checking if %s is broken', self._core.identifier)
>         #broken, broken_reason = self._core.messaging.call_external_function(
>         #  '..system',
>         #  '_StoreService:IsChannelBroken',
>         #  kwargs = dict(
>         #    identifier = self._core.identifier
>         #  )
>         #)
>         broken = False

I've looked at the current PMS Framework code - they've removed System.bundle/Contents/Code/storeservice.py which exposed the _StoreService:IsChannelBroken endpoint, which is called when plugins are called, but they didn't remove the code that called that endpoint. The above removes the call.

So yes, this is a PMS issue.

Edit: SubZero still works because it skips the check by returning a MediaContainer not an ObjectContainer.

tested and confirmed. working again like a charm. thanks for @pannal 👍 shame for @plex 👎

pannal commented 3 years ago

Nah, give them a break. This happens to the best of us :)

ukdtom commented 3 years ago

And also to the worst of us, like me :-)

agneevX commented 3 years ago

I'm guessing files in /usr/lib/plexmediaserver/... are changed each time an update is done, @pannal?

jackyaz commented 3 years ago

Making the equivalent changes on Windows seems to render Plex non-starting

C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-1b7748a7b\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\handlers

pannal commented 3 years ago

Making the equivalent changes on Windows seems to render Plex non-starting

C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-1b7748a7b\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\handlers

That shouldn't be the case.

I'm guessing files in /usr/lib/plexmediaserver/... are changed each time an update is done, @pannal?

Yes. The issue is acknowledged by Plex already, though. Will probably be fixed some time soon.

jackyaz commented 3 years ago

Last entries in the server log referenced the tuner service not starting. I'll do some more debugging later

rg9400 commented 3 years ago

This issue seems to be resolved as of PMS version 1.22.0.4157