Qdrant plugin’s private DNS name never resolves in wren-ai-service
Anonymous
HOBBYOP

10 months ago

Description

I’m using Railway’s managed Qdrant plugin alongside my custom wren-ai-service container. The service startup script waits for Qdrant at its in-cluster hostname (qdrant.railway.internal:6333) but the lookup always fails.

To troubleshoot, I removed every hard-coded QDRANT_* variable, then added only variable references via the Railway picker: QDRANT_HOST→qdrant, QDRANT_PORT→PORT (which is 6333), QDRANT_URL→http://${QDRANT_HOST}:${QDRANT_PORT}. I did not type any .up.railway.app domains anywhere.

I enabled Private Networking on both the Qdrant plugin and wren-ai-service, confirmed they share US East (Virginia) Metal, and added dependsOn so wren-ai waits for qdrant. I also stood up the plugin’s TCP proxy on port 6333, which should register the alias qdrant.railway.internal:6333 in Railway DNS.

Despite all of the above, wren-ai-service logs still show “forward host lookup failed: No address associated with name,” and the service times out waiting for Qdrant. I’m looking for any missing setting—feature flag, DNS propagation issue, firewall rule, or plugin config—that would let in-cluster DNS work as intended.

Solved$10 Bounty

Pinned Solution

custom156
HOBBY

9 months ago

Hi,

After a few hours of tinkering (read: cursing), I came up with a way to make it work. The variable references are case sensitive, in your main app variables, the host also needs "http://" in front of the variable reference.

QDRANT_HOST = http://${{Qdrant.RAILWAY_PRIVATE_DOMAIN}}:${{Qdrant.PORT}}
<-- Notice the capital "Q" and lowercase "drant" in Qdrant! -->

I've removed the QDRANT_PORT from my main app variables.

In the Qdrant block, I added these variables:

PORT = 6333

QDRANT__SERVICE__HOST = ::

QDRANT__SERVICE__GRPC_HOST = ::

QDRANT__SERVICE__HTTP_HOST = ::

That did the trick for me. YMMV.

Hope it helps

2 Replies

10 months ago

Hello,

Just want to briefly mention that Qdrant is not managed by us in anyway, it is completely unmanaged from our prospective.

Is your application doing a AAAA DNS lookup? it would be an issue if its not given the private network is IPv6 only.

Best,
Brody


Status changed to Awaiting User Response Railway 10 months ago


custom156
HOBBY

9 months ago

Hi,

After a few hours of tinkering (read: cursing), I came up with a way to make it work. The variable references are case sensitive, in your main app variables, the host also needs "http://" in front of the variable reference.

QDRANT_HOST = http://${{Qdrant.RAILWAY_PRIVATE_DOMAIN}}:${{Qdrant.PORT}}
<-- Notice the capital "Q" and lowercase "drant" in Qdrant! -->

I've removed the QDRANT_PORT from my main app variables.

In the Qdrant block, I added these variables:

PORT = 6333

QDRANT__SERVICE__HOST = ::

QDRANT__SERVICE__GRPC_HOST = ::

QDRANT__SERVICE__HTTP_HOST = ::

That did the trick for me. YMMV.

Hope it helps


Status changed to Solved brody 9 months ago


Loading...