{"record":{"id":"7fda295704066e32","repo":"vercel/next.js","slug":"config-options-experimental-externalproxyrewrites","errorCode":null,"errorMessage":"Config options `experimental.externalProxyRewritesResolve` and `experimental.externalMiddlewareRewritesResolve` cannot be set at the same time. Please use `experimental.externalProxyRewritesResolve` instead.","messagePattern":"Config options `experimental\\.externalProxyRewritesResolve` and `experimental\\.externalMiddlewareRewritesResolve` cannot be set at the same time\\. Please use `experimental\\.externalProxyRewritesResolve` instead\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/next/src/server/config.ts","lineNumber":992,"sourceCode":"    userConfig.experimental?.middlewareClientMaxBodySize !== undefined\n  ) {\n    throw new Error(\n      'Config options `experimental.proxyClientMaxBodySize` and `experimental.middlewareClientMaxBodySize` cannot be set at the same time. Please use `experimental.proxyClientMaxBodySize` instead.'\n    )\n  }\n  if (\n    userConfig.experimental?.proxyPrefetch !== undefined &&\n    userConfig.experimental?.middlewarePrefetch !== undefined\n  ) {\n    throw new Error(\n      'Config options `experimental.proxyPrefetch` and `experimental.middlewarePrefetch` cannot be set at the same time. Please use `experimental.proxyPrefetch` instead.'\n    )\n  }\n  if (\n    userConfig.experimental?.externalProxyRewritesResolve !== undefined &&\n    userConfig.experimental?.externalMiddlewareRewritesResolve !== undefined\n  ) {\n    throw new Error(\n      'Config options `experimental.externalProxyRewritesResolve` and `experimental.externalMiddlewareRewritesResolve` cannot be set at the same time. Please use `experimental.externalProxyRewritesResolve` instead.'\n    )\n  }\n  if (\n    userConfig.skipProxyUrlNormalize !== undefined &&\n    userConfig.skipMiddlewareUrlNormalize !== undefined\n  ) {\n    throw new Error(\n      'Config options `skipProxyUrlNormalize` and `skipMiddlewareUrlNormalize` cannot be set at the same time. Please use `skipProxyUrlNormalize` instead.'\n    )\n  }\n\n  // Map Proxy config to Middleware config as it is currently an alias.\n  if (\n    userConfig.experimental?.proxyClientMaxBodySize === undefined &&\n    userConfig.experimental?.middlewareClientMaxBodySize !== undefined\n  ) {\n    result.experimental.proxyClientMaxBodySize =","sourceCodeStart":974,"sourceCodeEnd":1010,"githubUrl":"https://github.com/vercel/next.js/blob/0ae8c72462952df163f1b1e0726641bc5b40dc93/packages/next/src/server/config.ts#L974-L1010","documentation":"`experimental.externalMiddlewareRewritesResolve` was renamed to `experimental.externalProxyRewritesResolve`. The check at config.ts:988-995 rejects setting both keys because the alias-mapping step needs exactly one source value. Use the proxy-prefixed key going forward.","triggerScenarios":"Setting both `experimental.externalProxyRewritesResolve` and `experimental.externalMiddlewareRewritesResolve` in the config.","commonSituations":"Config migration during upgrade where the old experimental key was left in place. Inheriting a shared base config and overriding with the new name.","solutions":["Remove `experimental.externalMiddlewareRewritesResolve` and keep `experimental.externalProxyRewritesResolve`.","Confirm the external resolver module path or function is correct.","Audit other `externalMiddleware*` keys for the same rename pattern."],"exampleFix":"// before\nmodule.exports = { experimental: { externalProxyRewritesResolve: './resolver', externalMiddlewareRewritesResolve: './resolver' } }\n// after\nmodule.exports = { experimental: { externalProxyRewritesResolve: './resolver' } }","handlingStrategy":"validation","validationCode":"const e = config.experimental ?? {};\nif (e.externalProxyRewritesResolve !== undefined && e.externalMiddlewareRewritesResolve !== undefined) {\n  throw new Error('set only experimental.externalProxyRewritesResolve');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["When upgrading, search-and-replace `externalMiddlewareRewritesResolve` -> `externalProxyRewritesResolve`.","Maintain a single source config and derive per-environment configs from it."],"tags":["config","proxy","middleware","rewrites","migration","next-config"],"analyzedSha":"0ae8c72462952df163f1b1e0726641bc5b40dc93","analyzedAt":"2026-08-06T19:44:29.143Z","schemaVersion":2},"datasetVersion":"2026-08-07T02:17:10.218Z"}