Starting with pyroscope/pyroscope-dotnet:0.14.0-glibc, the PYROSCOPE_SERVER_ADDRESS environment variable is sensitive to a trailing slash.
When there's a trailing slash (e.g. PYROSCOPE_SERVER_ADDRESS=http://pyroscope:4040/), the application and profiles are missing from the Pyroscope UI (logs indicate HTTP 301 status but no other error messages). Without the trailing slash (e.g. PYROSCOPE_SERVER_ADDRESS=http://pyroscope:4040), the application and profiles show up as expected in the Pyroscope UI.
0.13.0-glibc and 0.14.0-rc.7-glibc work as expected when server address has a trailing slash.
0.14.0-glibc and 0.14.2-glibc do not work as expected when server address has a trailing slash.
Example debug logs when the issue occurs:
- .NET application with environment variable
DD_TRACE_DEBUG=true:
- [2026-03-18 12:00:00.000 | debug | PId: 1 | TId: 10] PyroscopePprofSink 301
- grafana/pyroscope with command
-log.level=debug:
- ts=2026-03-18T12:00:00.000000000Z caller=http.go:346 level=debug traceID=1c880ae6196c8320 method=POST uri=//push.v1.PusherService/Push status=301 duration=49.622µs msg="http request processed"
Note the 301 status and the double slash at the beginning of the //push.v1.PusherService/Push uri.
Starting with pyroscope/pyroscope-dotnet:0.14.0-glibc, the PYROSCOPE_SERVER_ADDRESS environment variable is sensitive to a trailing slash.
When there's a trailing slash (e.g.
PYROSCOPE_SERVER_ADDRESS=http://pyroscope:4040/), the application and profiles are missing from the Pyroscope UI (logs indicate HTTP 301 status but no other error messages). Without the trailing slash (e.g.PYROSCOPE_SERVER_ADDRESS=http://pyroscope:4040), the application and profiles show up as expected in the Pyroscope UI.0.13.0-glibc and 0.14.0-rc.7-glibc work as expected when server address has a trailing slash.
0.14.0-glibc and 0.14.2-glibc do not work as expected when server address has a trailing slash.
Example debug logs when the issue occurs:
DD_TRACE_DEBUG=true:-log.level=debug:Note the 301 status and the double slash at the beginning of the //push.v1.PusherService/Push uri.