fix(middleware): avoid manual NextRequest with body for GET/HEAD to resolve failed to pipe response error (160k occurrences)
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 10s
Build & Deploy / 🧪 QA (push) Successful in 1m52s
Build & Deploy / 🏗️ Build (push) Failing after 3m37s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2m43s

This commit is contained in:
2026-04-12 11:14:15 +02:00
parent dcd099f5b1
commit e9e03c217a

View File

@@ -52,10 +52,13 @@ export default async function middleware(request: NextRequest) {
urlObj.protocol = proto; urlObj.protocol = proto;
// Only create a new request for GET/HEAD to avoid consuming the body stream on POST/PUT
// This resolves the "failed to pipe response" error (160k occurrences in GlitchTip)
if (['GET', 'HEAD'].includes(request.method)) {
effectiveRequest = new NextRequest(urlObj, { effectiveRequest = new NextRequest(urlObj, {
headers: request.headers, headers: request.headers,
method: request.method, method: request.method,
body: request.body, // No body for GET/HEAD
}); });
if (process.env.NODE_ENV !== 'production' || !process.env.CI) { if (process.env.NODE_ENV !== 'production' || !process.env.CI) {
@@ -64,6 +67,7 @@ export default async function middleware(request: NextRequest) {
); );
} }
} }
}
try { try {
// Apply internationalization middleware // Apply internationalization middleware