Why do I get "Blocked IP address detected"?
Langfuse calls some user-configured URLs on your behalf: LLM connection base URLs, webhook targets, blob storage export endpoints, and external media storage endpoints. To prevent server-side request forgery (SSRF), it resolves the hostname and rejects the URL with Blocked IP address detected when any resolved IP is in a private, loopback, link-local, or otherwise reserved range (for example 10.0.0.0/8, 192.168.0.0/16, 127.0.0.0/8, or 169.254.0.0/16). Hostnames such as localhost, *.internal, and host.docker.internal fail with Blocked hostname detected. A hostname that does not resolve fails as well.
The check runs when you save the setting and again on every request and redirect.
On IPv6-only networks with DNS64, even public provider hostnames can resolve to the NAT64 range 64:ff9b::/96. Langfuse blocks this range, so a public endpoint can fail with this error too. Allow the host explicitly (see below) or give the Langfuse containers IPv4 egress.
Langfuse Cloud
The check is always enforced and cannot be relaxed. LLM connection base URLs must use https://. Point the connection at a publicly resolvable endpoint, for example a gateway with a public hostname.
Self-hosted Langfuse
Allow specific internal endpoints per feature with comma-separated lists:
| Feature | Variables |
|---|---|
| LLM connections | LANGFUSE_LLM_CONNECTION_WHITELISTED_HOST, LANGFUSE_LLM_CONNECTION_WHITELISTED_IPS, LANGFUSE_LLM_CONNECTION_WHITELISTED_IP_SEGMENTS |
| Webhooks | LANGFUSE_WEBHOOK_WHITELISTED_HOST, LANGFUSE_WEBHOOK_WHITELISTED_IPS, LANGFUSE_WEBHOOK_WHITELISTED_IP_SEGMENTS |
| Blob storage | LANGFUSE_BLOB_STORAGE_ENDPOINT_WHITELISTED_HOST, ..._WHITELISTED_IPS, ..._WHITELISTED_IP_SEGMENTS |
| External media | LANGFUSE_EXTERNAL_MEDIA_STORAGE_ENDPOINT_WHITELISTED_HOST, ..._WHITELISTED_IPS, ..._WHITELISTED_IP_SEGMENTS |
A hostname in _WHITELISTED_HOST skips the IP check. _WHITELISTED_IPS takes exact IPs and _WHITELISTED_IP_SEGMENTS takes CIDR ranges such as 10.0.0.0/8. Set the variables on both the web and worker containers, because both make outbound requests.
There is no setting that turns the check off for all targets. Every internal endpoint has to be listed explicitly, because anything on these lists is exempt from SSRF protection.
For the full list of variables, including the positive *_ALLOWED_HOSTS allowlists, see Outbound URL allowlists and LLM connection troubleshooting.
Last updated on