Error executing external web request: java.lang.SecurityException: Endpoint is Blacklisted


#1

I have a piston that uses a make a get request to an http:// address. I noticed that it’s not been working properly now and it giving the following message now:

Error executing external web request: java.lang.SecurityException: Endpoint http://sitename.com/api/local/info/state/ is Blacklisted.

Since it appears to be working sometimes, I don’t think it’s because I’m using http instead of https. Is there any way to tell if I’m hitting some type of limit in how many times I can make an http call? I’m checking it every 5 minutes.

Any ideas how I can determine what’s causing this?


#2

I think this is some type of limit on the smartthings side. I have a webhook that’s used on the smartthings side only that’s also giving the same message. It doesn’t matter what URL I use, valid or not.


#3

Also keep in mind that (using your example above) sitename.com can limit your queries.
(per minute, per hour, per day etc)

Most devs place blocks to prevent network congestion / spammers.

I wonder if your “every five minutes” has gotten you blacklisted. (until it resets itself)


#4

You could test this by changing the frequency to every 30 minutes, and let the piston run for at least 36 hours. (we need to give it time to reset your counts)


Edit:

Perhaps an easier way would be to read the documentation found on the sitename.com website.
(Most APIs have very clear restrictions posted)


#5

The site I’m connecting to is my own linux server so I don’t have any limits in place. This is something on the smartthings side as if I try to make a get request to any valid or invalid http or https address, I get a blacklisted message. This happens both from the webcore side and when I use a webhooks smartapps on the smartthings side only. I’m not even getting a rate limit message, just blacklisted. Eventually, it’ll start working again. I never had any issues previously and I haven’t increased my http calls. This started either last week or the week before.

I’m to the point where I’m going to completely move off of smartthings. Every time I get something working perfectly, smartthings changes something and breaks things. I’m constantly having to chase down new issues and I’m tired of having to do so.


#6

Whatever metric smartthings is using to determine the http/https call “blacklist” has cleared for me as of a few minutes ago. Frustrating!


#7

Oh wow… Every 5 minutes should not be a problem with local queries.

I wonder what is the pattern for when you get the java.lang.SecurityException…??

(Is there mention of a “recovery” in your logs?)


If we look at this from a slightly different angle, I’ve notice when SmartThings updates code, they do not always publish every single change.

So, for example, if the errors happen within a 24 hour period, but afterwards, the piston works reliably for weeks on end, then I would attribute those bugs to an update that got fixed.

On the other hand, if the error happens almost daily, and you find it working again 24 hours later, then it sounds like an intentional block. (I’d try reducing the frequency)


Also note that a totally unrelated piston may be spamming your network too often, which could seriously impact this piston. (IE: Perhaps 10 days ago you created an unrelated loop, WHILE block, or a trigger based on power changes, that has gotten out of hand)


I feel your pain. I program SmartHomes for a living, and the constant change (that I have no control of) is the most difficult part about my job. (What worked last year, is not necessarily the path I will take next year)


I hate to be the bearer of bad news, but you will see this with all companies…
Especially the ones on the forefront of new technology.

To coin a phrase:
If we cannot adapt to the changing technology, our SmartHomes would become very dumb, very quickly.


#8

I’ll bring it all internal. I run a lot of things internally on a Linux server but I already had everything in smartthings initially then discovered webcore and decided to move many thing to webcore since it was very easy to do. I could easily do most of what I need to do using scripts on one of my Linux servers. The one thing I uses heavily at the moment is echo speaks so I’d need to determine how to make my echo dots speak from Linux or Windows.

It seem like every other week, smartthings changes something and things break. I own an IT outsourcing company and we never implement a change that hasn’t been tested every which way possible. If it weren’t for construction companies digging up cables, storms and car accidents, we’d have 100% customer uptime. I wonder if smartthings just doesn’t care too much about what they break since we’re not paying customers.


#9

I think perhaps the difference is, our SmartThings hub is expected to work with every device on the planet. If they “tested every which way possible” on every device possible, then we’d have no progress at all… LOL


They directly support their devices, but will not usually help with troubleshooting third party apps. (trust me, that job never ends!)


#10

When does a ‘blacklist’ clear? I’m having the same issue now.


#11

This error has been brought up in ST forum posts going back five years. An ST staff member once commented that they don’t do blacklisting and the error actually meant the endpoint didn’t exist. Quite what not existing means in this context isn’t clear, and things may have moved on.


#12

I don’t know the exact timing but it was clear when I checked back about an hour later. It does not appear that they are blacklisting sites or IP addresses. They are blocking you from being able to perform web based connections in general. I put in www.smartthings.com as a test and it came back with the blacklist message. It looks like one of their limits/guardrails.

In any case, I have completed moving all my devices and automations off of smartthings to my own hardware running internally. Any issues going forward are my own doing.