Persistent path-to-regexp error with valid rewrites

Hi!

##Current versus Expected behavior

Current behavior:

* Deployment fails with TypeError: Missing parameter name at 6: https://git.new/pathToRegexpError
* Serverless function crashes immediately on any request
* Error occurs regardless of rewrite configuration or handler filename
* Project is completely unusable despite valid setup

Expected behavior:

* SPA routes (like /login, /admin) should work without 404 errors
* API routes should be accessible via /api/*
* Express serverless function should serve the React frontend build
* Deployment should succeed with proper rewrites

##Code, configuration, and steps that reproduce this issue

Project structure:
root/
├── api/
│ └── main.js # Express serverless function
├── backend/
│ ├── routes/ # API routes
│ ├── services/ # Database services
│ └── dist/ # Frontend build output
├── components/ # React components
├── vercel.json # Rewrites configuration
└── package.json

vercel.json:
{
“rewrites”: [
{ “source”: “/api/(.)", “destination”: “/api/$1” },
{ “source”: "/(.
)”, “destination”: “/api/main” }
]
}

api/main.js:
const express = require(‘express’);
const serverless = require(‘serverless-http’);
const path = require(‘path’);

const app = express();

// Middleware setup
app.use(helmet());
app.use(cors());
app.use(express.json());

// API routes
app.use('/api/auth', require('./backend/routes/auth'));
app.use('/api/blog', require('./backend/routes/blog'));
// ... other routes

// Serve static frontend build
app.use(express.static(path.join(__dirname, 'backend/dist')));

// SPA fallback
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'backend/dist/index.html'));
});

module.exports = { default: serverless(app) };

Steps to reproduce:
1. Deploy project to Vercel
2. Access any SPA route (e.g., /login)
3. Check deployment logs
4. See path-to-regexp error

Troubleshooting steps already tried:

* ✅ Deleted and recreated Vercel project completely
* ✅ Changed handler filename from index.js to main.js
* ✅ Tested all rewrite patterns from documentation
* ✅ Verified no duplicate files in /api directory
* ✅ Confirmed all dependencies in package.json
* ✅ Checked environment variables
* ✅ Used both CommonJS and ESM module systems
* ✅ Simplified rewrites to basic patterns

##Project information (framework, environment, project settings)
- Framework: React (Vite) + Express
- Build Command: npm run build && npm run copy-dist
- Output Directory: dist
- Install Command: npm install
- Root Directory: ./

Environment Variables:
* SUPABASE_URL
* SUPABASE_ANON_KEY
* JWT_SECRET
* NODE_ENV=production

package.json scripts:
{
“scripts”: {
“build”: “vite build”,
“copy-dist”: “cp -r backend/dist .”,
“vercel-build”: “npm run build && npm run copy-dist”
}
}

Dependencies:
* Frontend: React, Vite, Tailwind CSS
* Backend: Express, serverless-http, cors, helmet, bcryptjs, @supabase/supabase-js

Error logs:
2025-07-18T16:09:51.094Z [error] TypeError: Missing parameter name at 6: GitHub - pillarjs/path-to-regexp: Turn a path string such as `/user/:name` into a regular expression
at name (/var/task/node_modules/path-to-regexp/dist/index.js:73:19)
at lexer (/var/task/node_modules/path-to-regexp/dist/index.js:91:27)
at lexer.next ()
at Iter.peek (/var/task/node_modules/path-to-regexp/dist/index.js:106:38)
at Iter.tryConsume (/var/task/node_modules/path-to-regexp/dist/index.js:112:28)
at Iter.text (/var/task/node_modules/path-to-regexp/dist/index.js:128:30)
at consume (/var/task/node_modules/path-to-regexp/dist/index.js:152:29)
at parse (/var/task/node_modules/path-to-regexp/dist/index.js:183:20)
at /var/task/node_modules/path-to-regexp/dist/index.js:294:74
at Array.map ()
Node.js process exited with exit status: 1

Question: Is this a known Vercel platform issue? How can I get my project working again? The error suggests a problem with Vercel’s internal path-to-regexp compilation, not my code.

Thanks for any help!

There’s another community post with 404 debugging tips that might be helpful. Please give these solutions a try and let us know how it goes.

A human should be around soon to offer more advice. But you can also get helpful information quickly by asking v0.

If you’re having trouble deploying an Express app, this guide can help.

You can also ask v0 for suggestions tailored to your own project setup.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.