Error: Unable to connect to ipify - Apple Phone causing it - way of avoiding it?

So I was testing my site on different devices and encountered this error, which turns out is from using Apple phones. On PC and Android, I can have pop up blockers on full and have no issues. But on apple phones, I haven’t found a workaround, as allowing all data or turning to desktop site has no effect.

I’m using the latest Bubble version, and the Bubble edition of Ipiphy. Anyone have a work around? At the very least, just have it fail silently and not block the user from logging in.

I’m a bit confused here, as how quickly the error pops up when it shouldn’t. For example, I have a form that when it submits, it will sign the user up, using the first name, email, password, and password confirmation, and gather it’s IP (using ipiphy) and userAgent (using Platform Information plugin).

I added a conditional to the button click to run a workflow using the sign the user up action, which should only run when the useragent string doesn’t contains “iPhone”. I made a second workflow using the button click again, but with the opposite condition, and took out the ipiphy in that sign the user up action.

So I would think that ipiphy would NOT run for an iPhone, but somehow it still does. I tested my conditional (posting it as plain text on the page) and it is giving the proper yes/no when it’s an iPhone and when it is not. So I don’t get how it is being triggered. Even when the form is an empty (and all the fields are set as “This input should not be empty”) and the submit button is clicked, it still generates the error.

I’m a PC guy, so it’s been a pain in the butt to figure this out, as the debug_mode=true doesn’t work on iPhones (I’m logged in and it seems to strip the query on Safari).

UPDATE: Current workaround is to remove the ipiphy plugin, and just use the API connector to connect directly with apify.org API using the simple IPv4 json call: https://api.ipify.org?format=json - checking the box to attempt to make the call from the browser.

This works better for me, as I don’t need the geolocation data for my purposes, just the IP, so saves me some money too since I won’t need the GoogleMaps API. However, while on PCs and Android it works and gives the proper IP address, on iPhones it returns empty. Not ideal, as I’m using the IP address for tracking, so I am going to have to find a workaround. But at least the page doesn’t crash, lol.

If anyone has a better solution to get iPhones to give up an IP I’m all ears.

Have you verified it actually responded with the IP address of the client w/ API Connector? Cause it is probably just returning the IP of whatever Bubble server made the API call even though the the box is checked, doesn’t guarantee/force it to make the API call from client

It is. I have to make the call within the browser and hide the result in a group (type text). Then I reference that in the workflow. If I was to put the call in the workflow, then it uses the server.

That works for PC and Android, but for iPhone it returns nothing, but no error.

2 Likes

Okay worse case if the API Connector something don’t work right, using “Run javascript” and “JavascriptToBubble” element from Toolbox you can make the API call on the user’s browser (or just make plugin instead)

For Safari compatibility might just need to try different services… Get IPv4 Address using JavaScript on Safari - Stack Overflow seems like some guy says the maxmind.com one works with Safari :man_shrugging:

1 Like

I noticed when you make a POST to a backend workflow from your own app, you can capture the headers and return the COUNTRY and IP, wonder if Safari is okay with Bubble/AWS as the IP service… :thinking: I will test that I think

Ok, I made a simple plugin to run the javascript and it seems to be working for PC, Android, iOS, on Chrome, Brave, Edge and Safari. :slight_smile:

1 Like