Skip to content

Conversation

@DragoonAethis
Copy link
Contributor

@DragoonAethis DragoonAethis commented Jan 30, 2026

DESCRIBE YOUR PR

  • 0.0.0.0 is the default socket bind address for multiple services (like relay, symbolicator, etc) in their template configuration files.
  • When http(s)_proxy is set, health checks have issues for some people (errors like Backend Unreachable, etc).
  • Health checks for those services are not integrated in the running service itself - they're separate processes (just executed from the same binary) that execute in the service container and connect to the running service over HTTP.
  • Health checks defined in docker-compose.yml default to connecting to the service instance address from the service config.
  • Which defaults to something like 0.0.0.0:3000.
  • Which is not in no_proxy.
  • So the health check process tries to access the service via the proxy.
  • Which fails.
  • Which results in "Up 5 minutes (unhealthy)" despite the affected services working correctly.
  • Except that docker compose up --wait waits for all services to be healthy. So that fails too.
  • Also the nginx service depends on web (which works) and relay (which works, but reports itself as unhealthy), so the frontend never starts.

And to fix all that, just add 0.0.0.0 to noProxy here and we're gucci.

There are a couple of folks with weird health check issues on the self-hosted repo - it's likely they will benefit from this change too.

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

- This is the default socket bind address for multiple services (like relay, symbolicator, etc).
- When http(s)_proxy is set, health checks have issues for some people (like Backend Unreachable, etc).
- Health checks for those services are not integrated into the service itself - they're separate processes that connect to the running service over HTTP.
- The health check process queries the service instance address from the config.
- Which defaults to something like `0.0.0.0:3000`.
- Which is not in no_proxy.
- So the health check process tries to access the service via the proxy
- Which fails.
- Which results in "Up 5 minutes (unhealthy)" despite the affected services working correctly.
- Except that `docker compose up --wait` waits for all services to be healthy. So that fails too.
- Also the `nginx` service depends on `web` (which works) and `relay` (which works, but reports itself as unhealthy), so the frontend never starts.

And to fix all that, just add `0.0.0.0` to `noProxy` here and we're gucci.
@vercel
Copy link

vercel bot commented Jan 30, 2026

@DragoonAethis is attempting to deploy a commit to the Sentry Team on Vercel.

A member of the Team first needs to authorize it.

@DragoonAethis
Copy link
Contributor Author

Let me ping @Dav1dde and @aldy505 since you reworked the health checks in relay and symbolicator - if you see issues around those two services, might be useful to ask if the affected setup has a proxy.

@Dav1dde
Copy link
Member

Dav1dde commented Jan 30, 2026

I wonder if we were better off to just rewrite 0.0.0.0 explicitly to 127.0.0.1 instead of relying on this somewhat platform specific behaviour. This would also eliminate the need to add it to the no proxy var. I assume adding it is fine, but I am definitely not certain if there aren't any unintended side-effects.

@DragoonAethis
Copy link
Contributor Author

I wonder if we were better off to just rewrite 0.0.0.0 explicitly to 127.0.0.1 instead of relying on this somewhat platform specific behaviour.

That could work too, AFAIK health checks are executed like docker exec -t service health-check-cmd, so 127.0.0.1 should always point at the live process.

Copy link
Member

@Dav1dde Dav1dde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried to research this a bit, seems like there isn't an obvious reason why this may have unintended side-effects.

@aldy505 aldy505 enabled auto-merge (squash) January 30, 2026 23:46
@vercel
Copy link

vercel bot commented Feb 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
develop-docs Ready Ready Preview, Comment Feb 2, 2026 8:00am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
sentry-docs Ignored Ignored Preview Feb 2, 2026 8:00am

Request Review

@aldy505 aldy505 merged commit 0681826 into getsentry:master Feb 2, 2026
13 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants