From da1d74309ef096d7fdb0511ac3cdcb72675159d3 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Tue, 31 Mar 2026 14:57:59 +0200 Subject: [PATCH] fix: detect replay via replayExchangeId field, not just header The X-Cameleer-Replay header is only available when inputSnapshot is captured (DETAILED/DEEP engine level). The agent always sets replayExchangeId on RouteExecution, so check that first. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/cameleer3/server/core/ingestion/IngestionService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/ingestion/IngestionService.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/ingestion/IngestionService.java index 8809a8c3..9ff02b7e 100644 --- a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/ingestion/IngestionService.java +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/ingestion/IngestionService.java @@ -102,8 +102,8 @@ public class IngestionService { boolean hasTraceData = hasAnyTraceData(exec.getProcessors()); - boolean isReplay = false; - if (inputSnapshot != null && inputSnapshot.getHeaders() != null) { + boolean isReplay = exec.getReplayExchangeId() != null; + if (!isReplay && inputSnapshot != null && inputSnapshot.getHeaders() != null) { isReplay = "true".equalsIgnoreCase( String.valueOf(inputSnapshot.getHeaders().get("X-Cameleer-Replay"))); }