Файл .env.local никогда не попадёт в продакшен, потому что Git игнорирует его по умолчанию (он в .gitignore), поэтому Vercel не имеет доступа к этим переменным во время деплоя. Тебе нужно настроить переменные прямо в панели Vercel. Заходишь в проект в dashboard'е Vercel, переходишь в Settings > Environment Variables и добавляешь каждую нужную переменную - имя и значение. Если есть переменные, которые нужны только для разработки (например локальные тесты), отмечаешь галочку "Development" только для них. Для тех, что Next.js нужен использовать и на сервере, и на клиенте, добавляешь без ограничений по окружению.
Для переменных, которые должны остаться только на сервере (типа чувствительных API ключей), добавляешь их обычно и используешь в коде внутри серверных функций - getServerSideProps, API routes, Server Components. Next.js автоматически не выставляет их в браузер. Если нужно получить доступ к переменной на клиенте, добавь префикс NEXT_PUBLIC_ к имени (типа NEXT_PUBLIC_API_URL) и она будет доступна в браузере, но используй это только для некритичных данных.
После настройки всего в Vercel делаешь новый push в GitHub, даже если ничего не менялось, и Vercel пересоберёт приложение с переменными, которые ты установил. Если используешь preview deployments (автоматический деплой pull request'ов), настрой переменные и для этих тестовых окружений в секции "Preview" в settings'ах. Совет: если переменных много, скопируй целый блок из одного окружения в другое вместо того, чтобы добавлять их по одной.