Files
vercel__next.js/errors/proxy-user-agent.mdx
Jiwon Choi 71ce95dffa docs: Replace Middleware docs to Proxy (#84709)
> [!NOTE]
> Best reviewed by each commit for better diff view.

This PR clones the Middleware docs for Proxy and removes the Middleware docs.

Did not clone the list of docs:

- `errors/middleware-upgrade.mdx` - It's a middleware upgrade guide from v12.2
- `errors/beta-middleware.mdx` - It's an error when using middleware before v12.2
- `errors/returning-response-body.mdx` - Legacy behavior from versions < v12.2
2025-10-17 16:13:26 +02:00

35 lines
963 B
Plaintext

---
title: Removed req.ua from Proxy API
---
## Why This Error Occurred
Your proxy is interacting with `req.ua` and this feature needs to opt-in.
```ts filename="proxy.ts"
import { NextRequest, NextResponse } from 'next/server'
export function proxy(request: NextRequest) {
const url = request.nextUrl
const viewport = request.ua.device.type === 'mobile' ? 'mobile' : 'desktop'
url.searchParams.set('viewport', viewport)
return NextResponse.rewrite(url)
}
```
## Possible Ways to Fix It
To parse the user agent, import `userAgent` function from `next/server` and give it your request:
```ts filename="proxy.ts"
import { NextRequest, NextResponse, userAgent } from 'next/server'
export function proxy(request: NextRequest) {
const url = request.nextUrl
const { device } = userAgent(request)
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop'
url.searchParams.set('viewport', viewport)
return NextResponse.rewrite(url)
}
```