[▲ Vercel Community](/) · [Categories](/categories) · [Latest](/latest) · [Top](/top) · [Live](/live)

[Help](/c/help/9)

# Next.js14.2.28: Unable to find lambda for route: /recommend

266 views · 0 likes · 6 posts


zhanghanting (@aifusion24-gmailcom) · 2025-05-15

[08:54:07.410] Running build in Washington, D.C., USA (East) – iad1
[08:54:07.411] Build machine configuration: 2 cores, 8 GB
[08:54:07.428] Cloning github.com/zhanghanting/giftideas (Branch: master, Commit: 8a3afc0)
[08:54:07.437] Skipping build cache, deployment was triggered without cache.
[08:54:07.847] Cloning completed: 419.000ms
[08:54:08.243] Running "vercel build"
[08:54:08.634] Vercel CLI 41.7.3
[08:54:08.967] Installing dependencies...
[08:54:12.334] npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
[08:54:15.305] npm warn deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
[08:54:15.351] npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
[08:54:16.577] npm warn deprecated eslint@8.49.0: This version is no longer supported. Please see https://eslint.org/version-support for other options.
[08:54:19.132] npm warn deprecated @supabase/auth-helpers-nextjs@0.10.0: This package is now deprecated - please use the @supabase/ssr package instead.
[08:54:20.346] npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
[08:54:20.361] npm warn deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead
[08:54:25.740] 
[08:54:25.741] added 591 packages in 17s
[08:54:25.742] 
[08:54:25.742] 176 packages are looking for funding
[08:54:25.743]   run `npm fund` for details
[08:54:25.828] Detected Next.js version: 14.2.28
[08:54:25.835] Running "npm run build"
[08:54:25.948] 
[08:54:25.948] > nextjs@0.1.0 build
[08:54:25.948] > npx next build
[08:54:25.948] 
[08:54:26.873] Attention: Next.js now collects completely anonymous telemetry regarding usage.
[08:54:26.874] This information is used to shape Next.js' roadmap and prioritize features.
[08:54:26.874] You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
[08:54:26.875] https://nextjs.org/telemetry
[08:54:26.875] 
[08:54:26.926]   ▲ Next.js 14.2.28
[08:54:26.927]   - Experiments (use with caution):
[08:54:26.927]     · scrollRestoration
[08:54:26.927] 
[08:54:26.996]    Creating an optimized production build ...
[08:54:50.287]  ✓ Compiled successfully
[08:54:50.289]    Skipping validation of types
[08:54:50.289]    Skipping linting
[08:54:50.552]    Collecting page data ...
[08:54:50.992] Initializing Supabase client
[08:54:50.993] NEXT_PUBLIC_SUPABASE_URL environment variable exists: true
[08:54:50.993] NEXT_PUBLIC_SUPABASE_ANON_KEY environment variable exists: true
[08:54:51.024] ImageGenerationService initialized, default model: google/gemini-2.0-flash-exp-image-generation
[08:54:53.058]    Generating static pages (0/28) ...
[08:54:53.405]    Generating static pages (7/28) 
[08:54:53.538] Initializing Supabase client
[08:54:53.539] NEXT_PUBLIC_SUPABASE_URL environment variable exists: true
[08:54:53.539] NEXT_PUBLIC_SUPABASE_ANON_KEY environment variable exists: true
[08:54:54.216]    Generating static pages (14/28) 
[08:54:54.766]    Generating static pages (21/28) 
[08:54:55.104]  ✓ Generating static pages (28/28)
[08:54:55.417]    Finalizing page optimization ...
[08:54:55.418]    Collecting build traces ...
[08:55:00.574] 
[08:55:00.585] Route (app)                            Size     First Load JS
[08:55:00.585] ┌ ○ /                                  5.27 kB         115 kB
[08:55:00.585] ├ ○ /_not-found                        908 B          93.4 kB
[08:55:00.585] ├ ƒ /api/auth/check-sync               0 B                0 B
[08:55:00.586] ├ ƒ /api/auth/sync-session             0 B                0 B
[08:55:00.586] ├ ƒ /api/dashboard                     0 B                0 B
[08:55:00.586] ├ ƒ /api/dashboard/recommendations     0 B                0 B
[08:55:00.586] ├ ƒ /api/debug                         0 B                0 B
[08:55:00.586] ├ ƒ /api/feedback                      0 B                0 B
[08:55:00.586] ├ ƒ /api/gift-recommendations          0 B                0 B
[08:55:00.587] ├ ƒ /api/gifts                         0 B                0 B
[08:55:00.587] ├ ƒ /api/gifts/[id]                    0 B                0 B
[08:55:00.587] ├ ƒ /api/recommend                     0 B                0 B
[08:55:00.587] ├ ƒ /api/recommend-ai                  0 B                0 B
[08:55:00.587] ├ ƒ /api/recommend-ai/queue            0 B                0 B
[08:55:00.587] ├ ƒ /api/recommend-ai/queue/status     0 B                0 B
[08:55:00.587] ├ ƒ /api/recommend-lambda              0 B                0 B
[08:55:00.588] ├ ƒ /api/recommend-page                0 B                0 B
[08:55:00.588] ├ ƒ /api/recommend-router              0 B                0 B
[08:55:00.588] ├ ƒ /api/recommend/feedback            0 B                0 B
[08:55:00.588] ├ ƒ /api/recommend/status              0 B                0 B
[08:55:00.588] ├ ƒ /auth/callback                     0 B                0 B
[08:55:00.589] ├ ○ /dashboard                         10.6 kB         173 kB
[08:55:00.590] ├ ○ /dashboard/calendar                5.27 kB         197 kB
[08:55:00.590] ├ ○ /dashboard/contacts                9.3 kB          204 kB
[08:55:00.590] ├ ○ /dashboard/history                 6.47 kB         193 kB
[08:55:00.590] ├ ƒ /dashboard/recommendation-history  231 B           108 kB
[08:55:00.591] ├ ○ /feedback                          6.44 kB         174 kB
[08:55:00.591] ├ ○ /feedback/thank-you                5.57 kB         115 kB
[08:55:00.591] ├ ○ /history                           6.42 kB         160 kB
[08:55:00.591] ├ ○ /how-feedback-works                221 B           103 kB
[08:55:00.591] ├ ○ /how-it-works                      4.62 kB         116 kB
[08:55:00.592] ├ ○ /login                             5.47 kB         159 kB
[08:55:00.592] ├ ○ /occasions                         171 B          92.7 kB
[08:55:00.592] ├ ○ /pricing                           221 B           103 kB
[08:55:00.592] ├ ○ /recommend                         13.4 kB         235 kB
[08:55:00.592] ├ ○ /recommend/ai-mode                 5.8 kB          192 kB
[08:55:00.592] ├ ƒ /recommendation-history            231 B           108 kB
[08:55:00.593] ├ ƒ /recommendation/[id]               231 B           108 kB
[08:55:00.593] ├ ○ /relationships                     3.11 kB         103 kB
[08:55:00.593] ├ ○ /settings                          6.91 kB         156 kB
[08:55:00.593] └ ○ /signup                            6.36 kB         121 kB
[08:55:00.594] + First Load JS shared by all          92.5 kB
[08:55:00.594]   ├ chunks/4417-b63be2080f8e744c.js    53.6 kB
[08:55:00.594]   └ other shared chunks (total)        38.9 kB
[08:55:00.594] 
[08:55:00.595] 
[08:55:00.595] ƒ Middleware                           69.1 kB
[08:55:00.595] 
[08:55:00.595] ○  (Static)   prerendered as static content
[08:55:00.596] ƒ  (Dynamic)  server-rendered on demand
[08:55:00.596] 
[08:55:00.827] Traced Next.js server files in: 68.63ms
[08:55:01.084] Created all serverless functions in: 257.292ms
[08:55:01.108] Error: Unable to find lambda for route: /recommend
[08:55:01.663] 
[08:55:04.507] Exiting build container


Jacob Paris (@jacobparis) · 2025-05-15

We'll need to see more code to debug this

The issue is that `/recommend` is being created as a static route and then for some reason it's trying to run it as a lambda, which makes me assume there's a mismatch in either your next.config.js or vercel.json files

If you can provide those I'll take a look, but if that's not enough we'll need a full reproduction in a public repo


zhanghanting (@aifusion24-gmailcom) · 2025-05-15

vercel json:{
  "version": 2,
  "buildCommand": "next build",
  "functions": {
    "app/api/recommend-lambda.js": {
      "maxDuration": 60
    }
  },
  "routes": [
    { "handle": "filesystem" },
    { "src": "/recommend", "dest": "/api/recommend-lambda" }
  ]
} 

next.config.js:/** @type {import('next').NextConfig} */
const nextConfig = {
  images: { 
    domains: ['images.pexels.com', 'github.com', 'lh3.googleusercontent.com', 'placehold.co'],
    dangerouslyAllowSVG: true,
    contentDispositionType: 'attachment',
    contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;",
    remotePatterns: [
      {
        protocol: 'https',
        hostname: '**',
      },
    ],
  },
  async rewrites() {
    return [
      // 简化重写规则,让页面路由和API路由分开处理
      {
        source: '/api/recommend-router',
        destination: '/api/recommend-router/route',
      }
    ];
  },
  webpack: (config) => {
    config.cache = true;
    
    config.ignoreWarnings = [
      { module: /node_modules\/ws\/lib\// }
    ];
    
    config.optimization = {
      ...config.optimization,
      splitChunks: {
        chunks: 'all',
        minSize: 20000,
        maxSize: 70000,
        cacheGroups: {
          default: {
            minChunks: 2,
            priority: -20,
            reuseExistingChunk: true,
          },
          vendors: {
            test: /[\\/]node_modules[\\/]/,
            priority: -10,
          },
          components: {
            test: /[\\/]components[\\/]/,
            priority: -30,
          },
        },
      },
      runtimeChunk: 'single',
      minimize: true
    };
    return config;
  },
  experimental: {
    scrollRestoration: true,
    useWasmBinary: true
  },
  eslint: {
    // 在部署时忽略ESLint错误
    ignoreDuringBuilds: true,
  },
  // 忽略TypeScript检查以避免构建错误
  typescript: {
    // 在部署时忽略类型检查错误
    ignoreBuildErrors: true,
  },
};

module.exports = nextConfig;


zhanghanting (@aifusion24-gmailcom) · 2025-05-15

I`ve made many attempts at this problem using cursor,but it`s still not worked.I didn`t find any information about it the the vercel documentation.Can you please tell me how to solve this problem,it`s very important for me.thanks a lot.


Jacob Paris (@jacobparis) · 2025-05-16

You're overriding the `/recommend` route in your vercel.json. I would suggest not using `routes` there

Instead, if you're looking at redirecting traffic, you should use [rewrites](https://vercel.com/docs/project-configuration#rewrites) to send visitors to `/recommend` to your `/api/recommend-lambda`


system (@system) · 2026-01-20

Hey @aifusion24-gmailcom! 👋

Just wanted to follow up here. If you've found a solution or still need help, let us know! We're happy to continue assisting.