Skip to content

[Bug]: Error converting traces to OTLP (\uFFFD) #2589

@joffrey-bion

Description

@joffrey-bion

What happened?

I'm running jaeger-all-in-one.

When importing some OTLP traces, I get Error converting traces to OTLP:

Image

When checking server logs, I see the following:

{
  "level": "error",
  "ts": 1737043807.5091002,
  "caller": "app/http_handler.go:494",
  "msg": "HTTP handler, Internal Server Error",
  "error": "cannot unmarshal OTLP : readUint32: unexpected character: \ufffd, error found in #10 byte of ...|esCount\":-1}],\"links|..., bigger context ...|AR to the classpath\"}}],\"droppedAttributesCount\":-1}],\"links\":[],\"status\":{\"code\":2},\"flags\":257},{\"|...",
  "stacktrace": "github.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).handleError\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:494\ngithub.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).transformOTLP\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:195\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngithub.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).handleFunc.traceResponseHandler.func2\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:538\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.WithRouteTag.func1\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:215\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*middleware).serveHTTP\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:177\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.NewMiddleware.func1.1\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:65\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngithub.com/gorilla/mux.(*Router).ServeHTTP\n\tgithub.com/gorilla/[email protected]/mux.go:212\ngithub.com/jaegertracing/jaeger/cmd/query/app.createHTTPServer.responseHeadersHandler.func4\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/additional_headers_handler.go:19\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngithub.com/jaegertracing/jaeger/cmd/query/app.createHTTPServer.CompressHandler.CompressHandlerLevel.func6\n\tgithub.com/gorilla/[email protected]/compress.go:141\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngithub.com/gorilla/handlers.recoveryHandler.ServeHTTP\n\tgithub.com/gorilla/[email protected]/recovery.go:80\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3210\nnet/http.(*conn).serve\n\tnet/http/server.go:2092"
}

The file itself doesn't contain this \uFFFD replacement char, so I'm guess there might be some encoding issue between the UI and the backend.

Steps to reproduce

  1. Launch jaeger all-in-one and go to the Upload tab
  2. Upload opentelemetry_traces.json (renamed to .json because GitHub doesn't like .jsonl) or opentelemetry_traces.json (2)
  3. Notice the error message in the UI and server logs

Expected behavior

The traces are imported successfully

Relevant log output

{
  "level": "error",
  "ts": 1737043807.5091002,
  "caller": "app/http_handler.go:494",
  "msg": "HTTP handler, Internal Server Error",
  "error": "cannot unmarshal OTLP : readUint32: unexpected character: \ufffd, error found in #10 byte of ...|esCount\":-1}],\"links|..., bigger context ...|AR to the classpath\"}}],\"droppedAttributesCount\":-1}],\"links\":[],\"status\":{\"code\":2},\"flags\":257},{\"|...",
  "stacktrace": "github.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).handleError\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:494\ngithub.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).transformOTLP\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:195\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngithub.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).handleFunc.traceResponseHandler.func2\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:538\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.WithRouteTag.func1\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:215\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*middleware).serveHTTP\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:177\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.NewMiddleware.func1.1\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:65\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngithub.com/gorilla/mux.(*Router).ServeHTTP\n\tgithub.com/gorilla/[email protected]/mux.go:212\ngithub.com/jaegertracing/jaeger/cmd/query/app.createHTTPServer.responseHeadersHandler.func4\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/additional_headers_handler.go:19\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngithub.com/jaegertracing/jaeger/cmd/query/app.createHTTPServer.CompressHandler.CompressHandlerLevel.func6\n\tgithub.com/gorilla/[email protected]/compress.go:141\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2220\ngithub.com/gorilla/handlers.recoveryHandler.ServeHTTP\n\tgithub.com/gorilla/[email protected]/recovery.go:80\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3210\nnet/http.(*conn).serve\n\tnet/http/server.go:2092"
}

Screenshot

No response

Additional context

No response

Jaeger backend version

1.62.0

SDK

opentelemetry-java with kotlin bindings

Pipeline

Jaeger all-in-one

Stogage backend

Jaeger all-in-one

Operating system

Windows

Deployment model

Local Jaeger all-in-one

Deployment configs

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions