Plex app using internal IP when remote [solved]

Server Version#: 1.41.0.8930
Player Version#: 10.20.0.1427 (960518449) (Android)
Hey all,

Recently have run into an issue when using the app (primary on Android, but also on some other Smart TVs). I am able to connect and watch remotely just fine, either through my customer domain or via app.plex.tv. However, when trying to access via an app, I am getting timeouts. When that app is connected directly to the same network, it works. When I look at the app debug logs, it appears that the app is still not seeing an external IP address, only the internal network address. I have completely removed and reinstalled the app, but the same behavior occurs. What can I do to make sure that apps are getting the correct external IP address? Thanks.

08-31 13:17:31.834  i: Hello, Plex for Android world (debug: false)!
08-31 13:17:31.834  i: App version: 10.20.0.1427 (960518449)
08-31 13:17:31.835  i: Nano server version: 1.40.2.8395-c67dce28e
08-31 13:17:31.835  i: FFmpeg version: 2.0-ad474602b33
08-31 13:17:31.835  i: Treble version: 2.1.0.587
08-31 13:17:31.835  i: ASS version: 0.16.0
08-31 13:17:31.835  i: Manufacturer: samsung  Device: b5q  Model: SM-F731U1  Product: b5quew  Version: 14
08-31 13:17:31.835  i: Screen size: Normal Screen density: Unknown Resolution: 2640x1080 DPI: 420 Touchscreen: true  Marketplace: com.android.vending  Architecture: arm64-v8a
08-31 13:17:37.334  i: [AppsFlyerInitializer] conversion_attribute:  install_time = 2024-08-31 19:40:13.844
08-31 13:17:37.335  i: [AppsFlyerInitializer] conversion_attribute:  af_message = organic install
08-31 13:17:37.335  i: [AppsFlyerInitializer] conversion_attribute:  af_status = Organic
08-31 13:17:37.335  i: [AppsFlyerInitializer] conversion_attribute:  is_first_launch = false
08-31 13:17:51.744  i: Creating ContainerActivity.
08-31 13:17:51.747  i: [Boot] ContainerActivity took 4ms to run create behaviours.
08-31 13:17:51.754  i: Resuming ContainerActivity.
08-31 13:17:51.764  i: Fetching [method:GET] https://clients.plex.tv/api/v2/home/users?X-Plex-Token=...bx6k&X-Plex-Language=en-us
08-31 13:17:55.401  i: Resuming HomeActivityMobile.
08-31 13:17:55.401  e: Presenter not found! Type: unknown, Subtype: unknown
08-31 13:17:56.780  i: [UserAction] Select menu item: Up.
08-31 13:17:58.336  i: [device] Setting selected server to PlexServer version: 1.41.0.8930-056c2ed26 owned: true home: false videoTranscode: true audioTranscode: true deletion: true class:  null, presence false
08-31 13:17:58.353  i: [ContentSectionNavigation] Navigating to path /hubs/sections/6
08-31 13:17:58.354  i: [ServerClaimingHelper] Server PlexServer cannot be claimed: it doesn't have required conditions
08-31 13:17:58.356  i: Fetching [method:PUT] https://192.168.200.210:32400/updater/check?download=0&X-Plex-Token=...****&X-Plex-Language=en-us
08-31 13:17:58.375  i: [Boot] g took 0ms to run create behaviours.
08-31 13:17:58.380  i: Fetching [method:GET] https://192.168.200.210:32400/hubs/sections/6?count=25&excludeElements=Actor%2CCollection%2CCountry%2CDirector%2CGenre%2CLabel%2CMood%2CPart%2CPhoto%2CProducer%2CRole%2CSimilar%2CTopic%2CVast%2CWriter&excludeFields=file%2Csummary%2Ctagline&includeEmpty=1&includeExternalMetadata=1&includeLibraryPlaylists=1&includeMeta=1&includeRecentChannels=1&includeStations=1&includeTrailers=1&includeTypeFirst=1&libraryHubsOnly=1&X-Plex-Token=...****&X-Plex-Language=en-us
08-31 13:17:58.486  i: [LiveAiringMediaItemsMonitor] Cancelling change detection
08-31 13:17:58.487  i: [LiveAiringMediaItemsMonitor] Cancelling change detection
08-31 13:17:58.527  e: Presenter not found! Type: unknown, Subtype: unknown
08-31 13:17:58.529  i: [PlexLibraryManager] Checking to see if any libraries are syncing...
08-31 13:17:58.529  i: Fetching [method:GET] https://192.168.200.210:32400/library/sections?X-Plex-Token=...****&X-Plex-Language=en-us
08-31 13:18:03.368  e: [ServerWebSocket] Websocket error
08-31 13:18:03.370  e: An exception occurred: java.net.SocketTimeoutException: failed to connect to /192.168.200.210 (port 32400) from /100.74.24.116 (port 60094) after 5000ms
08-31 13:18:03.371  e: Stacktrace: java.net.SocketTimeoutException: failed to connect to /192.168.200.210 (port 32400) from /100.74.24.116 (port 60094) after 5000ms
	at libcore.io.IoBridge.connectErrno(IoBridge.java:235)
	at libcore.io.IoBridge.connect(IoBridge.java:179)
	at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
	at java.net.Socket.connect(Socket.java:646)
	at okhttp3.internal.platform.Platform.connectSocket(SourceFile:11)
	at okhttp3.internal.connection.RealConnection.connectSocket(SourceFile:78)
	at okhttp3.internal.connection.RealConnection.connect(SourceFile:196)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(SourceFile:270)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(SourceFile:1)
	at okhttp3.internal.connection.ExchangeFinder.find(SourceFile:48)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(SourceFile:32)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(SourceFile:12)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.cache.CacheInterceptor.intercept(SourceFile:190)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.http.BridgeInterceptor.intercept(SourceFile:171)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(SourceFile:35)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.logging.HttpLoggingInterceptor.intercept(SourceFile:4)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at ep.d.intercept(SourceFile:376)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(SourceFile:118)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(SourceFile:45)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)

08-31 13:18:05.446  i: [UserAction] Select menu item: Up.
08-31 13:18:07.545  i: [UserAction] Drawer header action clicked: (Settings)
08-31 13:18:08.383  e: [ServerWebSocket] Websocket error
08-31 13:18:08.385  e: An exception occurred: java.net.SocketTimeoutException: failed to connect to /192.168.200.210 (port 32400) from /100.74.24.116 (port 60130) after 5000ms
08-31 13:18:08.385  e: Stacktrace: java.net.SocketTimeoutException: failed to connect to /192.168.200.210 (port 32400) from /100.74.24.116 (port 60130) after 5000ms
	at libcore.io.IoBridge.connectErrno(IoBridge.java:235)
	at libcore.io.IoBridge.connect(IoBridge.java:179)
	at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
	at java.net.Socket.connect(Socket.java:646)
	at okhttp3.internal.platform.Platform.connectSocket(SourceFile:11)
	at okhttp3.internal.connection.RealConnection.connectSocket(SourceFile:78)
	at okhttp3.internal.connection.RealConnection.connect(SourceFile:196)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(SourceFile:270)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(SourceFile:1)
	at okhttp3.internal.connection.ExchangeFinder.find(SourceFile:48)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(SourceFile:32)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(SourceFile:12)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.cache.CacheInterceptor.intercept(SourceFile:190)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.http.BridgeInterceptor.intercept(SourceFile:171)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(SourceFile:35)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.logging.HttpLoggingInterceptor.intercept(SourceFile:4)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at ep.d.intercept(SourceFile:376)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(SourceFile:118)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(SourceFile:45)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)

08-31 13:18:18.401  e: [ServerWebSocket] Websocket error
08-31 13:18:18.405  i: Time out fetching https://192.168.200.210:32400/hubs/sections/6?count=25&excludeElements=Actor%2CCollection%2CCountry%2CDirector%2CGenre%2CLabel%2CMood%2CPart%2CPhoto%2CProducer%2CRole%2CSimilar%2CTopic%2CVast%2CWriter&excludeFields=file%2Csummary%2Ctagline&includeEmpty=1&includeExternalMetadata=1&includeLibraryPlaylists=1&includeMeta=1&includeRecentChannels=1&includeStations=1&includeTrailers=1&includeTypeFirst=1&libraryHubsOnly=1&X-Plex-Token=...****.
08-31 13:18:18.407  e: An exception occurred: java.net.SocketTimeoutException: failed to connect to /192.168.200.210 (port 32400) from /100.74.24.116 (port 55492) after 5000ms
08-31 13:18:18.408  i: Time out fetching https://192.168.200.210:32400/updater/check?download=0&X-Plex-Token=...****.
08-31 13:18:18.409  e: Stacktrace: java.net.SocketTimeoutException: failed to connect to /192.168.200.210 (port 32400) from /100.74.24.116 (port 55492) after 5000ms
	at libcore.io.IoBridge.connectErrno(IoBridge.java:235)
	at libcore.io.IoBridge.connect(IoBridge.java:179)
	at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
	at java.net.Socket.connect(Socket.java:646)
	at okhttp3.internal.platform.Platform.connectSocket(SourceFile:11)
	at okhttp3.internal.connection.RealConnection.connectSocket(SourceFile:78)
	at okhttp3.internal.connection.RealConnection.connect(SourceFile:196)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(SourceFile:270)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(SourceFile:1)
	at okhttp3.internal.connection.ExchangeFinder.find(SourceFile:48)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(SourceFile:32)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(SourceFile:12)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.cache.CacheInterceptor.intercept(SourceFile:190)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.http.BridgeInterceptor.intercept(SourceFile:171)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(SourceFile:35)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.logging.HttpLoggingInterceptor.intercept(SourceFile:4)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at ep.d.intercept(SourceFile:376)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(SourceFile:118)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(SourceFile:45)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)

08-31 13:18:18.409  i: Fetching [method:GET] https://192.168.200.210:32400/updater/status?X-Plex-Token=...****&X-Plex-Language=en-us
08-31 13:18:18.410  i: [SectionHubManager] Notifying listeners with status: SUCCESS
08-31 13:18:18.630  i: Time out fetching https://192.168.200.210:32400/library/sections?X-Plex-Token=...****.
08-31 13:18:19.611  i: [AppsFlyerInitializer] conversion_attribute:  install_time = 2024-08-31 19:40:13.844
08-31 13:18:19.611  i: [AppsFlyerInitializer] conversion_attribute:  af_message = organic install
08-31 13:18:19.611  i: [AppsFlyerInitializer] conversion_attribute:  af_status = Organic
08-31 13:18:19.611  i: [AppsFlyerInitializer] conversion_attribute:  is_first_launch = false
08-31 13:18:23.832  e: [PlexServerWebSocket] (ID: 221174612 | Server: PlexServer) Connection failed.
08-31 13:18:23.835  e: An exception occurred: java.net.SocketTimeoutException: failed to connect to /192.168.200.210 (port 32400) from /100.74.24.116 (port 43822) after 5000ms
08-31 13:18:23.836  e: Stacktrace: java.net.SocketTimeoutException: failed to connect to /192.168.200.210 (port 32400) from /100.74.24.116 (port 43822) after 5000ms
	at libcore.io.IoBridge.connectErrno(IoBridge.java:235)
	at libcore.io.IoBridge.connect(IoBridge.java:179)
	at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
	at java.net.Socket.connect(Socket.java:646)
	at okhttp3.internal.platform.Platform.connectSocket(SourceFile:11)
	at okhttp3.internal.connection.RealConnection.connectSocket(SourceFile:78)
	at okhttp3.internal.connection.RealConnection.connect(SourceFile:196)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(SourceFile:270)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(SourceFile:1)
	at okhttp3.internal.connection.ExchangeFinder.find(SourceFile:48)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(SourceFile:32)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(SourceFile:12)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.cache.CacheInterceptor.intercept(SourceFile:190)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.http.BridgeInterceptor.intercept(SourceFile:171)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(SourceFile:35)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.logging.HttpLoggingInterceptor.intercept(SourceFile:4)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at ep.d.intercept(SourceFile:376)
	at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:152)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(SourceFile:118)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(SourceFile:45)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)

08-31 13:18:29.030  i: [AppsFlyerInitializer] conversion_attribute:  install_time = 2024-08-31 19:40:13.844
08-31 13:18:29.031  i: [AppsFlyerInitializer] conversion_attribute:  af_message = organic install
08-31 13:18:29.031  i: [AppsFlyerInitializer] conversion_attribute:  af_status = Organic
08-31 13:18:29.031  i: [AppsFlyerInitializer] conversion_attribute:  is_first_launch = false

Again, server is accessible externally via browser, and remote access is green in server settings. I have a custom domain and certificate enabled, with a port translation from port 443 to port 32000. Apps worked until recently, web still works. In local app logs, the connection string appears to be pulling in an internal IP instead of an external IP.

Well, to save anyone else 6 hours of banging their head against the wall, I figured it out. Looks like my cert renewal script decided to change cert type from RSA to EC during the last renewal. While it looks like many clients didn’t seem to mind, sone, primarily the Android ones, did not like the new EC cert. I went back and reissued them using RSA and all seems to be working again. Would have been nice if the logs had been a bit more descriptive that the SSL was the reason that the client didn’t want to connect

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.