BTCPay cannot access internet. Traffic blocked by container?

Hi!

I’ve got a problem with my BTCPay Server running on Umbrel. I’ve posted to BTCPay’s support and they seem to think this has something to do with the way it’s deployed on Umbrel.

The problem is that BTCPay server is unable to connect to the internet. Access to the running Bitcoin and Lightning nodes on the server itself is working fine. But for example when looking up currency rates, it needs to access the internet. This is the error in the log:

web_1 | warn: PayServer: Error while contacting exchange kraken: Resource temporarily unavailable (api.kraken.com:443)

So it cannot access api.kraken.com. Kraken is up: I can do a curl from the Umbrel server (Raspberri Pi 4) and receive the currency rates just fine. Also, it happens with any currency supplier I select.

It seems to be some network problem when accessing the internet from within the docker container that BTCPay server is running in.

I can test this from the Rates page on the BTCPay server settings, it will then try to get the currency rates and then shows this message: ERR_RATE_UNAVAILABLE(kraken, BTC_USD)

Any tips how I can diagnose and/or fix this?

Thanks!

Configuration:
Umbrel 0.4.14 running on Raspberry Pi 4 (8GB).
Connected directly to the router (FritzBox) via Ethernet.
Using a 1 TB SSD.
Nginx reverse proxy configured.

BTCpay server on Umbrel run ONLY behind Tor onion address. It is not visible in clearnet (IP/domain).

If there’s a specific error with the app, run the debug logs or through SSH with docker-compose logs btcpay to see if there’s something wrong.

Also if you want your BTCpay to be visible in clearnet here is a guide.

It’s not about inbound (that works via the reverse proxy), but outbound. The BTCPay log doesn’t give much info but here is the full log:

Umbrel debug logs
https://0bin.net/paste/YKvQPpAh#BI55ofbMb31b1tUEcT9Xvbe4s9L9tb7-4WW5wJbzSC0

DMESG
https://0bin.net/paste/7QzSbc1v#+IsebKY9wUz8ZbpBD8-i3BELGVojxwH5/kEkvMd0X/4

Look like there are some minor issues with your Tor connection, but that is normal, everybody have that sometimes.

The btcpay error
Error while contacting exchange kraken: Resource temporarily unavailable (api.kraken.com:443)
doesn’t mean YOUR Btcpay is not connected, but the destination (kraken server) is not available. I think you can switch the exchange rate provider with another exchange.

Problem solved. It had to do with Pi-Hole, which is also running on the Pi. For some reason, outbound requests from the docker container (i.e. BtcPay) were blocked (I did see the DNS-request come in on Pi-Hole). I don’t really understand this, but when I configured the router to be the DNS-server again (bypassing Pi-Hole), it worked.

You see? You didn’t mention that you have Pi-hole installed in your first post. It is very important to give as much is possible the situation of your node software when you request help.

So are you saying that you understand why Pi-Hole is having this effect? I would be interested, because then I may be able to run it again.

I’m having a similar issue.

  • Running BTCPaySever on Umbrel.
  • Installed nginx to access it through reverse proxy in order to expose the API for my app server.
  • No matter what price source I select, I get the following error ERR_RATE_UNAVAILABLE.

I honestly have no idea as to how I would troubleshoot this.

I DID have pi-hole installes, but I never configured it. I have since removed it.

Any ideas to share?


Edit: Interesting to notice that when I go into the “Plugin” section, I also get the Remote plugins lookup failed. Try again later. error. So outbound connection from the btcpay container is clearly not working.

Lorax has this problem, too. Temporarily disabling Pi-Hole didn’t help, though.

Solved here:

I give more info on my troubleshooting process if that can help you.

I’m on the latest version, and that doesn’t seem to help. I don’t want to flash the SD… so I’m not sure what to do.