← Files RenderARCHIVED FILE

skills/render-networking/references/troubleshooting.md

2.99 KB · Oct 5, 2026 · 12:03 UTC

↓ Download file

# Private network troubleshooting

Common issues when private connectivity fails or behaves unexpectedly on Render.

## DNS resolution failures

- Confirm both services are in the **same region** and **same workspace**. Private DNS is scoped to that combination.
- Verify the **target service is running** (deploy succeeded, process up). Stopped or failed deploys will not resolve usefully for callers.
- Use the **system resolver** (see below); do not rely on ad-hoc HTTP “DNS” APIs for internal names.

## Port conflicts and limits

- **Reserved ports:** **10000**, **18012**, **18013**, **19099** — do not use these for your application’s primary listener.
- **75-port maximum** per service; trim listeners or consolidate if you hit the cap.
- **Multi-port Web Services:** Only the **`PORT`** port receives **public** HTTP; other open ports are **private-only**. Callers using the wrong port or expecting public routing on an extra port will fail or time out.

## Cross-region

Services in **different regions** **cannot** communicate over Render’s private network. Use public endpoints, data replication, or redesign placement so peers share a region.

## Cross-workspace

Services in **different workspaces** **cannot** communicate privately, even if regions match. Merge into one workspace or use an allowed public/integration path.

## Protocol mismatches

- Some HTTP clients require an explicit **`http://`** or **`https://`** prefix for internal URLs; a bare hostname may not construct a valid request URL.
- Mismatching **TLS** expectations (HTTPS client to HTTP server or vice versa) produces connection errors that look like “network” failures.

## Free-tier limitations

**Free Web Services** can **send** private traffic but **cannot receive** inbound private connections. If a Private Service or another Web Service cannot reach a free-tier web target privately, upgrade the target or expose traffic via a different topology (e.g., public API with auth).

## Workers, crons, and workflows “unreachable”

**Background Workers**, **Cron Jobs**, and **Workflow Runs** have **no internal hostname**. They **cannot** accept inbound private connections. Only **outbound** calls from them are valid; do not point other services at a “worker internal URL.”

## DNS resolver

- Use the **system DNS** configured in the runtime (e.g., behavior consistent with **`/etc/resolv.conf`** in Linux containers).
- Avoid replacing resolution with custom HTTP-based lookups for internal Render names; that bypasses the platform’s private DNS chain.

## Environment isolation (Professional+)

If private traffic **suddenly fails** between services that used to work, check whether **per-environment isolation** was enabled or tightened. Isolation can **block cross-environment** private traffic even when region and workspace match at the workspace level.

## Static sites

**Static Sites are not on the private network.** They cannot call or be called via internal hostnames. Use a Web Service or edge-appropriate public API for integration.

SHA-256: 522c8d45c53fb0b0e4b0ad6603cf8b87a5a66578ad475d8e5b573f6d9f834dfa