I was asked to describe my setup
#1
I usually don't bother with writing feedback on forums or private bug trackers anymore because of the track record of it being a waste of the not insignificant time needed to sign up (this forum not excluded) and to describe the problem, but I was asked nicely on the AppStore to describe my setup and to suggest improvement, and was directed here, so I'll give it one shot:

App version: latest as of writing. If that's not good enough then you can easily solve the problem with design: expose the version number clearly in the app. I certainly couldn't spot it. After writing the above I took a wild stab at tapping the Kodi logo and there it was — apparently that's the universal gesture for "show app info". Version is 1.11. Seriously, just print the version number in one of the sidebars, and introduce a simple button "About the app" instead of this hide-and-seek. I suppose that's improvement #1.

And now to the actual problem:

A red bar on launch displaying infinite error messages that a "data connection isn't allowed right now" whenever cellular data is blocked for the app while LAN access is allowed.

First of all the error is nonsensical since "data connection" obviously implies it's trying to access cellular internet in this case...to connect to a .local mDNS address. And the errors continue forever until I disable cellular data system wide in control center, after which it happily connects to my local Kodi instance.

What I find weird about the above:

1. To quote Wikipedia: "The domain name .local is a special-use domain name reserved by the Internet Engineering Task Force (IETF) so that it may not be installed as a top-level domain in the Domain Name System (DNS) of the Internet." What's the point of insisting on an internet ("data") connection? There's almost zero chance it's going to work properly anyway.
2. LAN access is still allowed. Why isn't that enough? It's as if the app prefers cellular data even when it's been disallowed for the app.
3. The app gives the impression of inspecting the system state for cellular data, while at the same time ignoring that it might be individually disallowed from using it even when cellular data is enabled globally.

You might not think that this corresponds to your own experience of how the app works, and you would likely be right, so I'll add one final detail that should be enough to zero in on the problem:

This only happens when the current WiFi connection (I.e. the local network) has no configured default router. It doesn't matter if the default router actually properly routes to the internet or not; if you have a non-internet connected default router it will immediately cause the app to stop generating errors and start working (over the local network).

This is a big problem if your local network actually doesn't have an internet connection, since if you (incorrectly) add a default router anyway then all internet requests on iOS will fail when they get routed over WiFi instead of cellular. You're then left with a phone with no working apps, except Kodi remote.
Reply
#2
Thanks again for taking the time to register and share more details here.

First, I agree the info is hidden well. When I started to work on the remote in December 2020 it took me while to figure out where it was. What can be done easily is adding the App version info to the "Server Info" box (the "i" button in server connections overview). Better would be to have an info or a settings entry in the main menu. I have this on my to-do list, but this requires some more work for the iPad.

We have had few reports by users that faced problems with connecting to the server which we could not reproduce. You now gave a very valuable hint (local network without gateway) which could definitely explain also the other users report. The error message you see is shown by the App, but its content (..."no internet connection...") comes from the iOS framework. This alone already help to narrow this down further. I just need to figure out how to set up such a local network with my equipment, I only have a router here...
Reply
#3
As you were not explicitly mentioning this, and I am not able to test this here yet: Can you try to manually enter your Kodi server's hostname in the in IP field of the server connection config? E.g. "hostname.local" or "myserver.local"?

Image
Reply
#4
Hello Buschel,

I appreciate the reply. And the fact that the remote supports devices down to iOS 10 (if I remember correctly).

Quote:I just need to figure out how to set up such a local network with my equipment, I only have a router here...

You won't need any special equipment or even differently configured networks, just assign your IP and subnet mask manually in iOS WiFi settings, and leave the default router field blank. Then disallow cellular data specifically for the app, and you should be in the same position as me. Unless I've missed something (I'm not a network expert).

Oh and you'd better make sure you actually have an active cellular data connection on the device to make sure it can make the wrong choice between the two.

As for assigning the .local host name manually in-app: yes, I wasn't very clear, that's what I'm doing (i.e. I'm not relying on zeroconf or similar to probe for Kodi instances).

I figured it might have been a localized framework error message, but I was kind of hoping not since it'd probably be a much easier fix if it weren't a framework that was making the wrong decision. Something is prioritizing the NIC with a default route — no matter what — that much I think is safe to say.

What's annoying is that other apps, like Termius, can still resolve the host names just fine while this app fails, making it much harder to zero in on the culprit without actually having to read code.

Let me know if you manage to recreate it.
Reply
#5
(2022-11-20, 19:16)Appstore-temp Wrote: You won't need any special equipment or even differently configured networks, just assign your IP and subnet mask manually in iOS WiFi settings, and leave the default router field blank. Then disallow cellular data specifically for the app, and you should be in the same position as me. Unless I've missed something (I'm not a network expert).

Oh and you'd better make sure you actually have an active cellular data connection on the device to make sure it can make the wrong choice between the two.
Configured my iPhone like you described, selecting an IP, setting the subnet mask to 255.255.255.0 and letting the router field blank. The App still connected to the Kodi test instance and also loaded data. This was independent of the cellular network setting of the phone. Tomorrow I will check this with my HTPC. Maybe I also need to do the same configuration for the test instance?
Reply
#6
I can recreate the problem both on iOS 15 and iOS 10. No Kodi instances actually need to be running on the local network to encounter the issue. Don't bother with that. You'll know you've hit the issue when the red error message keeps appearing perpetually upon a fresh launch of the app (given that your saved .local address is preselected from the previous launch).

Quote:This was independent of the cellular network setting of the phone.

Independent as in it didn't matter whether cellular data was enabled or disabled in control center?

However, the control center cellular data button only controls global cellular data access — you did not mention whether you had disabled individual cellular data access to the Kodi remote app. Global data must be enabled, and individual access disabled.

If this is still not enough to trigger it on your end then I'll have to think about it...
Reply
#7
Yes, the App itself has individual access to local network, but no individual access to cellular data. Enabling / disabling cellular data globally via control center does not change the behaviour. My phone runs iOS 16.1.1.

When I am not running a Kodi instance I of course also get repeated red warnings on the App, stating that it cannot connect to server. This is expected as the App repeatedly tries to build up a connection. The warning text does not change to something mentioning missing internet access, either way for WiFi router (on/off) or global cellular data access (on/off).

I am not sure about your comment on not having the need to run a Kodi instance in the network though. You wanted to state that for you it looks like the App does not even try to connect to the Kodi instance because it fails before that for another reason?

There must be something else missing.
Reply
#8
Sad 
Hi, I do have same problem in connecting kodi remote to my old iMAC.  Kodi remote immediately detect my kodi matrix but does not connect to my home router  IP address  192.168.1.243  port 8080 -  Any idea how to bypass this?   By the way, I experienced kodi remote app in the past with a very simple raspberryPi and it did work flawlessly.
Reply
#9
What is the exact error message you see? And did you try to use the host name with the ".local" suffix instead the IP (e.g. "my server.local")?
Reply
#10
(2022-11-21, 12:08)capatano Wrote: Hi, I do have same problem in connecting kodi remote to my old iMAC.  Kodi remote immediately detect my kodi matrix but does not connect to my home router  IP address  192.168.1.243  port 8080

You haven't mentioned anything that bears any similarity to the problem that this thread is about. At least I don't see it.

Quote:Any idea how to bypass this?   

This is a bug report thread, not a support thread, so not an appropriate place to ask. If you read through the thread you will quickly realize that we have not yet concluded what the problem is, so if you actually are experiencing the exact same problem then there still doesn't exist an actual solution. Feel free to start a new thread referring to this one if you think the problem description fits your situation exactly.
Reply
#11
Quote:I am not sure about your comment on not having the need to run a Kodi instance in the network though. You wanted to state that for you it looks like the App does not even try to connect to the Kodi instance because it fails before that for another reason?

There must be something else missing.

Exactly this. It always seems to complain about internet access. I'll look into it and see if I can find what's missing.
Reply
#12
(Previously in the thread I just translated the error messages back to english, but have since switched app language to english.)

Let's clarify the symptoms:

The infinite error message (red bar) that appears upon fresh launches of the app seems to be "The internet connection appears to be offline". I recall that previously it had repeatedly displayed "A data connection is not currently allowed", but I cannot reliably make it repeat that message, which instead only appears once (immediately after global cellular data is turned off in control center). In short, the app is trying to reach the internet before even attempting to connect to Kodi which explains why no Kodi instance is necessary to run into the problem.


Also, let's maybe constrain debugging to fresh launches of the app, otherwise there are complications:
  1. If the app is successfully connected to the Kodi instance with global cellular data disabled
  2. You enable cellular data globally in control center
  3. You manually disconnect the app from the Kodi instance
  4. You try to manually reconnect to the Kodi instance, then...
  5. You get an alert warning you that a TCP connection cannot be established, and the connection icon becomes yellow. I.e. you can now sort of connect, but get a TCP connection notice every time.

I think this might be the same problem but with different symptoms (the TCP alert and the icon color) but I'll mention it for completion.



Now I did find something else: connections work fine if we don't use the .local address, but instead use the equivalent IP address. This now suggests a DNS problem. That's not really my area, but I think I can at least say that something seems to be forcing DNS lookups of .local addresses on internet DNS servers, which — according to wikipedia — does not sound entirely correct.

How does this relate to default router/gateway? I'm not entirely sure, but we can now conclude that a) routing works fine, and b) address resolution does not. The question now is why doesn't mDNS address resolution work in Kodi Remote when it works for the exact same .local address in other apps (e.g. Termius — also with disabled cellular access)?

When I inspect the wifi network in iOS Settings there are some disconcerting messages in the DNS section whenever "Restrict IP address tracking" is enabled: "DNS is routed by Private Relay Services for iCloud for this wifi network". Just to be clear, I still have the same problem even when "Restrict IP tracking" is turned off for the wifi network, and I also don't subscribe to iCloud+. Why the Private Relay Service is even mentioned in wifi settings is beyond me as a non-subscriber, but anyway the mention disappears when IP tracking restriction is turned off, so it shouldn't be a problem... right?

I'm not convinced.


I've decided we should not get distracted by Private Relay Services since I could recreate the problem on iOS 10, which knows nothing about that service. Forgot about that.

When I switch DNS from "automatic" to "manual" and tap Save without having added any DNS servers, it reverts right back to "automatic". Now, what does "automatic" mean? Who knows, but regardless, these servers aren't even supposed to be used for lookup of .local addresses so it shouldn't matter. Right?

Can you make anything of this?
Reply
#13
Sorry for breaking into this thread abruptly.  I'm a newbie and didn't know how to start a new one. 

@Buschel  when back home gonna try with your suggestion.  Thank you!
Reply
#14
(2022-11-21, 17:49)Appstore-temp Wrote: Can you make anything of this?
I am sorry to say, but I now also played with DNS and still cannot reproduce. So, this is either some underlying config which is different between your and my setup which we didn't figure out yet or it it was fixed with later iOS versions. Sometimes the behaviour changes between different iOS versions.
Reply
#15
I see. Two questions to make sure I'm on the same page:

1. Do you only have access to iOS 16?

2. Considering your familiarity with the code base, what would you have done first if you were able to recreate the problem?

So far I've recreated it with two devices on two versions of iOS, and with two different access points (one consumer router and Ubuntu 22.04 hotspot running on a raspberry pi 4), but I'm also going to upgrade to iOS 16 fairly soon, when I have the appropriate version of Xcode installed.
Reply

Logout Mark Read Team Forum Stats Members Help
I was asked to describe my setup0