Giter Club home page Giter Club logo

Comments (3)

audvin avatar audvin commented on June 12, 2024

I'm seeing the same error on Vercel, but not on local.

My temp bandaid is to auto retry when that failure happens. The user will only experience a little delay.

        // Submit and get response message
        let attempts = 0
        let responseMessage: any = null
        while (attempts < 3) {
          try {
            responseMessage = await submitUserMessage(value)
            if (responseMessage) {
              setMessages(currentMessages => [...currentMessages, responseMessage])
            }
            break // Exit loop on success
          } catch (error) {
            console.error(`Attempt ${attempts + 1} failed:`, error)
            attempts++
            if (attempts === 3) {
              console.error('Failed to submit user message after 3 attempts.')
            }
          }
        }

from ai.

SergioAndesian avatar SergioAndesian commented on June 12, 2024

were you able to solve this? I'm having the same problem.

from ai.

Shervlock-OPG avatar Shervlock-OPG commented on June 12, 2024

This is pretty late but I was having the same issue as I was migrating a project to RSCs and managed to fix it.

The problem for me was the auth check in the middleware, to redirect to the login page if the request came from a user that wasn't logged in, and that was conflicting with the server action request, causing the error.

Fixed it by adding a check to see if the "Accept" field in the header is for a component.

import { auth } from '@/auth'
import { NextResponse } from 'next/server'

// More on how NextAuth.js middleware works: https://authjs.dev/getting-started/migrating-to-v5#details
export default auth(req => {
  const url = new URL('/login', req.url)

  const acceptHeader = req.headers.get('accept')

  // Allow requests for Server Actions and Server Components
  if (acceptHeader && acceptHeader.includes('text/x-component')) {
    return NextResponse.next()
  }

  // Redirect to login page if user is not authenticated
  if (!req.auth?.user) {
    return !req.nextUrl.pathname.includes('/login') // Prevent infinite redirect loop
      ? NextResponse.redirect(url)
      : NextResponse.next()
  }

  return NextResponse.next()
})

export const config = {
  matcher: ['/((?!api|_next/static|favicon|_next/image||.*\\.png$).*)']
}

from ai.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.