Link da PR
https://github.com/infinitybase/renave-api/pull/524
Tipo do problema
business-rule
Projeto
CARROPAGO
Repositorio
infinitybase/renave-api
Codigo flaggado
const traceId = trace.getActiveSpan()?.spanContext().traceId;
if (traceId) {
traceHeaders['x-correlation-id'] = traceId;
}
Comentario da IA
IMPORTANT: Inconsistent correlation ID source
Problem: You're using traceId as correlation ID, but the receiving service (apiaas) might expect the original x-correlation-id from the incoming request. This breaks correlation chain if the original request had a different correlation ID than the trace ID.
Suggestion: Check for existing x-correlation-id in the current request context first, fallback to traceId only if not present:
const correlationId = context.active().getValue('correlationId') || traceId;
if (correlationId) {
traceHeaders['x-correlation-id'] = correlationId;
}
Severidade do comentario da IA
IMPORTANT
Por que esta errado
A arquitetura do sistema usa intencionalmente o OTel traceId como correlationId em toda a cadeia de servicos. Clientes externos (bots WhatsApp) nao enviam x-correlation-id - o RequestMiddleware lê esse header apenas como fallback quando o OTel nao tem span ativo. A sugestao de context.active().getValue('correlationId') nao funciona assim no OTel: valores nao sao propagados dessa forma sem uso explicito de baggage. O design correto e propagar o traceId ativo como x-correlation-id para garantir rastreabilidade consistente entre renave-api e apiaas.
Regra de negocio
O correlationId nos servicos Renave e sempre derivado do OTel traceId. Clientes externos (bots) nao enviam x-correlation-id. A consistencia do correlationId entre servicos e garantida pelo traceparent (W3C) + x-correlation-id com o mesmo traceId.
Link da PR
https://github.com/infinitybase/renave-api/pull/524
Tipo do problema
business-rule
Projeto
CARROPAGO
Repositorio
infinitybase/renave-api
Codigo flaggado
Comentario da IA
IMPORTANT: Inconsistent correlation ID source
Problem: You're using
traceIdas correlation ID, but the receiving service (apiaas) might expect the originalx-correlation-idfrom the incoming request. This breaks correlation chain if the original request had a different correlation ID than the trace ID.Suggestion: Check for existing
x-correlation-idin the current request context first, fallback to traceId only if not present:Severidade do comentario da IA
IMPORTANT
Por que esta errado
A arquitetura do sistema usa intencionalmente o OTel traceId como correlationId em toda a cadeia de servicos. Clientes externos (bots WhatsApp) nao enviam x-correlation-id - o RequestMiddleware lê esse header apenas como fallback quando o OTel nao tem span ativo. A sugestao de
context.active().getValue('correlationId')nao funciona assim no OTel: valores nao sao propagados dessa forma sem uso explicito de baggage. O design correto e propagar o traceId ativo como x-correlation-id para garantir rastreabilidade consistente entre renave-api e apiaas.Regra de negocio
O correlationId nos servicos Renave e sempre derivado do OTel traceId. Clientes externos (bots) nao enviam x-correlation-id. A consistencia do correlationId entre servicos e garantida pelo traceparent (W3C) + x-correlation-id com o mesmo traceId.