#Middleware broken out of no where ?

72 messages · Page 1 of 1 (latest)

cinder hawk
#

All i did was npm update this morning and havent touched anything my code is same as the one deployed but now when i try to deploy latest it gives error

jolly peakBOT
#

🔎 This post has been indexed in our web forum and will be seen by search engines so other users can find it outside Discord

🕵️ Your user profile is private by default and won't be visible to users outside Discord, if you want to be visible in the web forum you can add the "Public Profile" role in id:customize

✅ You can mark a message as the answer for your post with Right click -> Apps -> Mark Solution
(if you don't see the option, try refreshing Discord with Ctrl + R)

thorny crown
#

Which packages were updated when you did npm update

cinder hawk
#

Failed to compile.

./middleware.ts:15:21
Type error: No overload matches this call.
Overload 1 of 4, '(args_0: GetServerSidePropsContext): Promise<Session | null>', gave the following error.
Argument of type '(req: NextAuthRequest) => Response | null' is not assignable to parameter of type 'GetServerSidePropsContext'.
Overload 2 of 4, '(args_0: (req: NextAuthRequest) => void | Response | Promise<void | Response>): AppRouteHandlerFn', gave the following error.
Argument of type '(req: NextAuthRequest) => Response | null' is not assignable to parameter of type '(req: NextAuthRequest) => void | Response | Promise<void | Response>'.
Type 'Response | null' is not assignable to type 'void | Response | Promise<void | Response>'.
Type 'null' is not assignable to type 'void | Response | Promise<void | Response>'.

13 | const { auth } = NextAuth(authConfig)
14 |

15 | export default auth((req) => {
| ^
16 | const { nextUrl } = req
17 | const isLoggedIn = !!req.auth
18 |

Error: Command "npx prisma generate && next build" exited with 1

cinder hawk
#
{
  "name": "reptracker",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@auth/prisma-adapter": "^1.0.17",
    "@hookform/resolvers": "^3.3.4",
    "@prisma/client": "^5.8.1",
    "@radix-ui/react-avatar": "^1.0.4",
    "@radix-ui/react-dropdown-menu": "^2.0.6",
    "@radix-ui/react-icons": "^1.3.0",
    "@radix-ui/react-label": "^2.0.2",
    "@radix-ui/react-popover": "^1.0.7",
    "@radix-ui/react-select": "^2.0.0",
    "@radix-ui/react-separator": "^1.0.3",
    "@radix-ui/react-slot": "^1.0.2",
    "@radix-ui/react-switch": "^1.0.3",
    "@types/bcryptjs": "^2.4.6",
    "@types/next-auth": "^3.15.0",
    "bcryptjs": "^2.4.3",
    "class-variance-authority": "^0.7.0",
    "clsx": "^2.1.0",
    "date-fns": "^3.3.1",
    "next": "14.1.0",
    "next-auth": "^5.0.0-beta.5",
    "next-themes": "^0.2.1",
    "nodemailer": "^6.9.8",
    "react": "^18",
    "react-day-picker": "^8.10.0",
    "react-dom": "^18",
    "react-hook-form": "^7.49.3",
    "react-icons": "^5.0.1",
    "react-spinners": "^0.13.8",
    "tailwind-merge": "^2.2.1",
    "tailwindcss-animate": "^1.0.7",
    "uuid": "^9.0.1",
    "zod": "^3.22.4"
  },
  "devDependencies": {
    "@types/node": "^20",
    "@types/nodemailer": "^6.4.14",
    "@types/react": "^18",
    "@types/react-dom": "^18",
    "@types/uuid": "^9.0.8",
    "autoprefixer": "^10.0.1",
    "eslint": "^8",
    "eslint-config-next": "14.1.0",
    "postcss": "^8",
    "prisma": "^5.8.1",
    "tailwindcss": "^3.3.0",
    "typescript": "^5"
  }
}

#

new^

#
{
  "name": "reptracker",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@auth/prisma-adapter": "^1.0.17",
    "@hookform/resolvers": "^3.3.4",
    "@prisma/client": "^5.8.1",
    "@radix-ui/react-avatar": "^1.0.4",
    "@radix-ui/react-dropdown-menu": "^2.0.6",
    "@radix-ui/react-icons": "^1.3.0",
    "@radix-ui/react-label": "^2.0.2",
    "@radix-ui/react-separator": "^1.0.3",
    "@radix-ui/react-slot": "^1.0.2",
    "@radix-ui/react-switch": "^1.0.3",
    "@types/bcryptjs": "^2.4.6",
    "@types/next-auth": "^3.15.0",
    "bcryptjs": "^2.4.3",
    "class-variance-authority": "^0.7.0",
    "clsx": "^2.1.0",
    "next": "14.1.0",
    "next-auth": "^5.0.0-beta.5",
    "next-themes": "^0.2.1",
    "nodemailer": "^6.9.8",
    "react": "^18",
    "react-dom": "^18",
    "react-hook-form": "^7.49.3",
    "react-icons": "^5.0.1",
    "react-spinners": "^0.13.8",
    "tailwind-merge": "^2.2.1",
    "tailwindcss-animate": "^1.0.7",
    "uuid": "^9.0.1",
    "zod": "^3.22.4"
  },
  "devDependencies": {
    "@types/node": "^20",
    "@types/nodemailer": "^6.4.14",
    "@types/react": "^18",
    "@types/react-dom": "^18",
    "@types/uuid": "^9.0.8",
    "autoprefixer": "^10.0.1",
    "eslint": "^8",
    "eslint-config-next": "14.1.0",
    "postcss": "^8",
    "prisma": "^5.8.1",
    "tailwindcss": "^3.3.0",
    "typescript": "^5"
  }
}

#

old^

thorny crown
#

this doesn't tell me much as i cant see what changed. but if i were to guess i'd say prisma 5.9^ is the culprit since it also broke my build

#

i went through and fixed the types but if you want to roll back you can change:
"@prisma/client": "5.8.1", and
"prisma": "5.8.1"

taking out the ^ will make it use a specific version

cinder hawk
#

@cinder hawk

night musk
#

@thorny crown no cause in npm run dev there is no issues

#

but it does have issues when i build it

#

aswell as now it has red lines / error in the file

#
import NextAuth from "next-auth"

import authConfig from "@/auth.config"

import {
    DEFAULT_LOGIN_REDIRECT,
    apiAuthPrefix,
    authRoutes,
    publicRoutes,
    blogPrefix
} from "@/routes"

const { auth } = NextAuth(authConfig)

export default auth((req) => {
    const { nextUrl } = req
    const isLoggedIn = !!req.auth

    const isApiAuthRoute = nextUrl.pathname.startsWith(apiAuthPrefix)
    const isBlogRoute = nextUrl.pathname.startsWith(blogPrefix)
    const isPublicRoute = publicRoutes.includes(nextUrl.pathname)
    const isAuthRoute = authRoutes.includes(nextUrl.pathname)

    if (isApiAuthRoute) return null
    if (isBlogRoute) return null

    if (isAuthRoute) {
        if (isLoggedIn) {
            return Response.redirect(new URL(DEFAULT_LOGIN_REDIRECT, nextUrl))
        }
        return null
    }

    if (!isLoggedIn && !isPublicRoute) {
        return Response.redirect(new URL("/auth/login", nextUrl))
    }
    return null
})

// Optionally, don't invoke Middleware on some paths
export const config = {
    matcher: ["/((?!.+\\.[\\w]+$|_next).*)", "/", "/(api|trpc)(.*)"],
}
#
(req) => {
#

the red line part^

thorny crown
night musk
#
No overload matches this call.
  Overload 1 of 4, '(args_0: GetServerSidePropsContext): Promise<Session | null>', gave the following error.
    Argument of type '(req: NextAuthRequest) => Response | null' is not assignable to parameter of type 'GetServerSidePropsContext'.
  Overload 2 of 4, '(args_0: (req: NextAuthRequest) => void | Response | Promise<void | Response>): AppRouteHandlerFn', gave the following error.
    Argument of type '(req: NextAuthRequest) => Response | null' is not assignable to parameter of type '(req: NextAuthRequest) => void | Response | Promise<void | Response>'.
      Type 'Response | null' is not assignable to type 'void | Response | Promise<void | Response>'.
        Type 'null' is not assignable to type 'void | Response | Promise<void | Response>'.ts(2769)
Parameter 'req' implicitly has an 'any' type.ts(7006)
(parameter) req: NextAuthRequest
thorny crown
#

which version of next auth are you using?

#

beta 5?

night musk
#

yes

thorny crown
#

i tried it and im not getting type errors

night musk
#

could it be typescript ?

thorny crown
#

but im using app router and looks like you're using pages

#

its definitelty a typescript error

night musk
#

I am using app router broo

#

but it thinkks i am using pages cuz it says serverSideProps and stuff

thorny crown
#

ok this made me think otherwise GetServerSidePropsContext

night musk
#

yeah

#

how do i fix that

#

is it in next config ?

thorny crown
#

does changing this fix anything? export default auth((req: any) => {

night musk
#

noo

#

i used github copilot to try 50 diff things

thorny crown
#

show me auth.config.ts

night musk
#
import type { NextAuthConfig } from "next-auth"
import Credentials from "next-auth/providers/credentials"
import Github from "next-auth/providers/github"
import Google from "next-auth/providers/google"
import bcrypt from "bcryptjs"

import { LoginSchema } from "@/schemas"
import { getUserByEmail } from "./data/user"

export default {
  providers: [
    Google({
      clientId: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET,
    }),
    Github({
      clientId: process.env.GITHUB_CLIENT_ID,
      clientSecret: process.env.GITHUB_CLIENT_SECRET,
    }),
    Credentials({
      async authorize(credentials) {
        const validatedFields = LoginSchema.safeParse(credentials)

        if (validatedFields.success) {
          const { email, password } = validatedFields.data

          const user = await getUserByEmail(email)
          if (!user || !user.password) return null

          const passwordsMatch = await bcrypt.compare(password, user.password)

          if (passwordsMatch) {
            return user
          }
        }
        return null
      }
    })],
} satisfies NextAuthConfig
#

no errors here

thorny crown
#

hmm. is the repo public? if i can download it and try it locally i might be able to help but its hard rn becuase the errors are weird

night musk
#

its not public but should i delete redownload it myself in another location and try npm run build

#

or delete node modules and npm run dev

thorny crown
#

yeah give that a try

night musk
#

yep something is wrong

#

i redownloaded my repo

#

and npm i and npx prisma generate && npm run build

#

it still gives same error

#

@thorny crown

#

what is your @auth/core version

#

in package-lock

thorny crown
#

"next-auth": "^5.0.0-beta.4",

night musk
#

not thatt

#

node_modules/@auth/core

in package-lock

thorny crown
#

"node_modules/@auth/core": {
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/@auth/core/-/core-0.24.0.tgz",
"dependencies": {
"@panva/hkdf": "^1.1.1",
"@types/cookie": "0.6.0",
"cookie": "0.6.0",
"jose": "^5.1.3",
"oauth4webapi": "^2.4.0",
"preact": "10.11.3",
"preact-render-to-string": "5.2.3"
},
"peerDependencies": {
"nodemailer": "^6.8.0"
},
"peerDependenciesMeta": {
"nodemailer": {
"optional": true
}
}
},

night musk
#

yeah so mine was on 0.23.0 and it was updated to 0.26.2

#

so i got my old package.json and package-lock.json and installed the other dependencies

#

i guess npm update is a scary command

#

🥳 FIXED IT

#

YAYY

thorny crown
#

nice work!

analog tide
#

Hi all 👋 I've got the same error and also ran npm update sadly it didnt fix the problem.

Package.json:

{
  "name": "aruah-jetzt",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@auth/prisma-adapter": "^1.3.3",
    "@hookform/resolvers": "^3.3.4",
    "@prisma/client": "^5.9.1",
    "@radix-ui/react-dropdown-menu": "^2.0.6",
    "@radix-ui/react-icons": "^1.3.0",
    "@radix-ui/react-label": "^2.0.2",
    "@radix-ui/react-slot": "^1.0.2",
    "@types/bcrypt": "^5.0.2",
    "@types/bcryptjs": "^2.4.6",
    "bcryptjs": "^2.4.3",
    "class-variance-authority": "^0.7.0",
    "clsx": "^2.1.0",
    "lucide-react": "^0.323.0",
    "next": "14.1.0",
    "next-auth": "^5.0.0-beta.9",
    "next-themes": "^0.2.1",
    "prisma": "^5.9.1",
    "react": "^18",
    "react-dom": "^18",
    "react-hook-form": "^7.50.1",
    "react-hot-toast": "^2.4.1",
    "tailwind-merge": "^2.2.1",
    "tailwindcss-animate": "^1.0.7",
    "tsx": "^4.7.0",
    "zod": "^3.22.4"
  },
  "devDependencies": {
    "@types/node": "^20",
    "@types/react": "^18",
    "@types/react-dom": "^18",
    "autoprefixer": "^10.0.1",
    "eslint": "^8",
    "eslint-config-next": "14.1.0",
    "postcss": "^8",
    "tailwindcss": "^3.3.0",
    "typescript": "^5"
  }
}

package-lock.json

    "node_modules/@auth/core": {
      "version": "0.26.3",
night musk
#

download the package.json and package-lock.json

#

then run npm i

#

it should fix it

analog tide
night musk
#

show code ?

night musk
#

its prob bugged that version

#

but good that it works