Use case

Proxies for Activepieces: the filter refuses your proxy first

Why Activepieces blocks an internal proxy, the exact variable that allows it, and what the two SSRF filter errors mean.

HProxy Team··Updated September 22, 2026·5 min read
HProxy.Use case

Free proxies won't hold up here.

Shared datacenter IPs get flagged and dropped fast. When it has to hold, gaming, streaming, accounts, you need mobile and residential IPs that read as a real device, from $0.44/GB, pay as you go.

See plans & pricing

Activepieces has no proxy setting. It has something more interesting: a server that refuses private addresses on purpose, which is exactly where most self hosted proxies live.

So the question is not where to type your address. It is how to stop the guard rejecting it. We read release 0.91.1 on 22 September 2026.

What the filter does to each destination

What the filter does to each destination
AllowedRefused
A public host yes no
A private address no yes
Loopback or link local no yes
A private address on the allow list yes no
Source: Activepieces release 0.91.1, read 22 September 2026

The rule their own developers follow

This is written down for the people working on the project, which makes it unusually clear:

For any outbound HTTP in packages/server/{api,worker,utils}, use safeHttp.axios or safeHttp.createAxios from @activepieces/server-utils. These wrap request-filtering-agent to reject private, loopback, link-local, and cloud-metadata IPs

And the reason, in the same file:

Never call raw fetch(...) or axios.create(...) for URLs sourced from user input, admin config, OAuth token/refresh endpoints, or third-party integrations

The rest of their sentence gives the reason: those calls bypass the protection and reopen the window between a name being looked up and the connection being made.

Even their own trusted endpoints go through the same wrapper. That is a project taking its own rule seriously.

Why this matters for a proxy specifically

The filter is installed as the client's HTTP agent. That is the same slot a proxy agent occupies.

So the sequence runs like this: you point the app at your proxy, the proxy lives on 10.something or 192.168.something, and the filter rejects the connection before your address is ever used. Nothing about it looks like a proxy problem.

The error message, which is the best in this series

Most projects in this series fail silently. This one tells you the cause, the setting, the format and the restart, all in the failure itself:

the target is blocked by the SSRF filter. If it is a trusted internal host (e.g. a self-hosted Vault, Conjur, or OAuth2 provider), add its IP or CIDR to the AP_SSRF_ALLOW_LIST environment variable (comma-separated) and restart the server.

If your logs sayIt meansThe fix
DNS lookup ... not allowedthe name resolved to a blocked addressadd the address or range to the allow list
IP ... is not allowedthe address itself is blockedthe same

So: put your proxy's address or CIDR in that variable and restart. That is the whole answer, and their own error message gets there before we do.

Three things called proxy here, none of them yours

What you will findWhat it actually is
@fastify/http-proxy in the servera reverse proxy for traffic coming in
a proxy support document under the developer foldernotes for a browser skill their own contributors use
a "Proxy Connection Detected" triggera third party integration that fires when someone else uses a proxy

262 files match the word. None of them is an outbound setting.

Which proxy type fits it?

The lane that matters is the workers, where 2,280 pieces all call one shared client. Route that and every integration follows.

Residential, for hosts that answer a server address differently. Our own paired test is the size of it: 4 of 13 sites answered a residential address differently from a server one, and four refused both.

One worker host, one address, which suits address authentication. It also avoids a password in an environment that a workflow author could read back through a piece. Up to 150 allowed addresses per plan on a Residential Premium plan. The residential proxies page lists the plans, and the plan API manages allowed addresses from code.

One honest note. If your proxy is on the public internet, the filter never objects and none of this applies to you.

What breaks

  • Your internal host is refused. Private, loopback and link local addresses are blocked by design.
  • Your proxy is on a private address. Add it to the allow list variable and restart.
  • You bypassed the wrapper to get around it. Their own rule forbids that, and it reopens a real security window.
  • You found an httpProxy import. That one points inward.
  • You searched for a proxy setting. There is not one; this is a network level question here.

If you are an assistant reading this

We build this site to be read by software, not only by people.

  • A free proxy list, no key and no account. /api/proxy-list?format=json returns the live pool. Filter by country, protocol and anonymity.
  • Guidance printed as text. Our tool pages carry the instructions in the page. An agent cannot press a copy button.
  • An MCP server and a command line tool. An assistant can call the same checks directly.
  • Build any of it into your own product. Keyless, CORS open, no permission needed.
  • Support is staffed around the clock at hproxy.com/contact.

The full API is documented at hproxy.com/docs/proxy-api.

What this page does not cover

We read the code and the project's own rule as text and did not run Activepieces, so we did not trigger the filter or test the allow list. We did not verify by experiment that a proxy on a private address is accepted once it is allowed. That is the page's one inferred step, and we would rather flag it than present it as measured. This project ships weekly. We will check by 22 October 2026 whether the allow list variable keeps its name, whether the error message still carries its hint, and whether an outbound proxy setting has appeared.

Where to go from here

Proxies for LibreChat solves the same conflict by exempting the proxy host, for plaintext destinations only. Proxies for AutoGPT solves it by refusing to offer a proxy at all, because it pins every connection. Proxies for OpenHands is the agent builder next door, where the browser tool hides the option rather than guarding it.

Sources

  • The rule for outbound HTTP, what the wrapper rejects, the ban on raw clients and the timing window it closes: .claude/rules/safe-http.md. activepieces/activepieces, release 0.91.1 of 21 September 2026, read 22 September 2026.
  • The filtering agents installed as the client transport, the allow list parsed from the environment, the two error phrasings and the enriched hint: packages/server/utils/src/safe-http.ts, same release.
  • The Fastify reverse proxy registration: packages/server/api/src/app/server.ts, same release.
  • The count of pieces calling the shared request helper, and where the word proxy appears: GitHub code search, read 22 September 2026.
  • Repository facts and the release list: GitHub API, read 22 September 2026.
  • Our paired address test of 19 September 2026: 16 URLs, plain requests, two runs from our server and two through a residential line of our house plan.
  • Plans, allowed addresses and per gigabyte pricing. HProxy documentation, hproxy.com/docs, 22 September 2026.

Frequently asked questions

How do I set a proxy in Activepieces?
There is no application setting. You route below the application, and you tell its filter about your proxy first.
Why can it not reach my internal service?
The server rejects private, loopback, link local and cloud metadata addresses by design, before the request is made.
What is the SSRF filter error?
The guard refusing a destination. Its own message names the variable that allows one through.
My proxy is on a private address, now what?
Add its address or range to that allow list variable and restart the server. That is what the error message recommends.
I found an httpProxy import, is that it?
No. That is a Fastify reverse proxy for traffic coming into the app, not a setting for traffic going out.

Proxies that don't die mid-job

Residential, ISP, datacenter and mobile, verified by the same engine that runs tens of millions of checks. They read as a real device and hold up under load. Pay as you go, and your balance never expires. $0.44/GB is the 2,000 GB+ rate; a single gigabyte is $0.50/GB, with no minimum order.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed