diff --git a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/kafka/SentryProducerInterceptor.java b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/kafka/SentryProducerInterceptor.java index 916fcceb26..4caa4a8b54 100644 --- a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/kafka/SentryProducerInterceptor.java +++ b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/kafka/SentryProducerInterceptor.java @@ -53,25 +53,26 @@ public SentryProducerInterceptor(final @NotNull IScopes scopes) { return record; } - final @NotNull SpanOptions spanOptions = new SpanOptions(); - spanOptions.setOrigin(TRACE_ORIGIN); - final @NotNull ISpan span = activeSpan.startChild("queue.publish", record.topic(), spanOptions); - if (span.isNoOp()) { - return record; - } + try { + final @NotNull SpanOptions spanOptions = new SpanOptions(); + spanOptions.setOrigin(TRACE_ORIGIN); + final @NotNull ISpan span = + activeSpan.startChild("queue.publish", record.topic(), spanOptions); + if (span.isNoOp()) { + return record; + } - span.setData(SpanDataConvention.MESSAGING_SYSTEM, "kafka"); - span.setData(SpanDataConvention.MESSAGING_DESTINATION_NAME, record.topic()); + span.setData(SpanDataConvention.MESSAGING_SYSTEM, "kafka"); + span.setData(SpanDataConvention.MESSAGING_DESTINATION_NAME, record.topic()); - try { injectHeaders(record.headers(), span); + + span.setStatus(SpanStatus.OK); + span.finish(); } catch (Throwable ignored) { - // Header injection must not break the send + // Instrumentation must never break the customer's Kafka send } - span.setStatus(SpanStatus.OK); - span.finish(); - return record; }