Ultimate

X_OTLP_HEADERS_INVALID

Means

OTEL_EXPORTER_OTLP_HEADERS is malformed

Typical cause

in OTEL_EXPORTER_OTLP_HEADERS or the per-signal OTEL_EXPORTER_OTLP_TRACES_HEADERS / ..._METRICS_HEADERS that replaces it for its signal — the cause names the variable read — a percent-escape in one header value that decodeURIComponent cannot decode — a stray % meant literally (api-key=100%), or a truncated escape (%zz). Refused rather than kept raw: an operator-set variable with a bad escape is a misconfiguration, and sending the undecoded bytes would authenticate against nothing while looking like a collector outage. The header key is named in the cause and the fix; the value never is, because a header value is a credential

Fix

set <the variable the cause names>=<key>=<encoded>, where <encoded> is what bun -e 'console.log(encodeURIComponent(process.argv[1]))' <value> prints — or drop the stray % if it was meant literally

Listed under Metrics

This page as markdown