diff --git a/app/api/agent-workflow/detail-stitch/route.ts b/app/api/agent-workflow/detail-stitch/route.ts index 9910f464f..fa9d48151 100644 --- a/app/api/agent-workflow/detail-stitch/route.ts +++ b/app/api/agent-workflow/detail-stitch/route.ts @@ -66,8 +66,15 @@ async function runBoundedParallel( function getRequestOrigin(request: NextRequest): string { const forwardedHost = (request.headers.get("x-forwarded-host") || "").split(",")[0]?.trim(); const forwardedProto = (request.headers.get("x-forwarded-proto") || "").split(",")[0]?.trim(); - if (forwardedHost && forwardedProto) { - return `${forwardedProto}://${forwardedHost}`; + const host = forwardedHost || (request.headers.get("host") || "").split(",")[0]?.trim(); + if (host) { + const requestUrl = new URL(request.url); + const isLocalHost = + host.startsWith("localhost") || + host.startsWith("127.0.0.1") || + host.startsWith("[::1]"); + const proto = forwardedProto || (isLocalHost ? requestUrl.protocol.replace(/:$/, "") : "https"); + return `${proto}://${host}`; } return new URL(request.url).origin; }