V0 Issues with User Authentication and JSON

I am a newbie to AI coding, or “vibe coding”. I am not a coder, so this is even more difficult. I do have experience building websites with HTML/CSS, WYSIWYG editors, and CMS, but no actual coding.

I’m using v0 to try to build an app, but I’ve run into some issues that I can’t solve. For one thing, when I forked my project for the first time, it completely deleted my landing page and replaced it with something completely different and worse. I asked it to roll back and proceed from that specific version, and it did, but it immediately went back to the ugly version the minute I asked it to make a change. I repeated this several times before giving up and going back to the original file. I worked in that file until it slowed down so much I couldn’t keep using it and then forked again.

Thankfully, that one didn’t mess up my landing page, but now I’ve run into some authentication errors the system can’t seem to fix. I’ve spent many hours on it and nothing has worked. I am using Neon for the backend.

Here are some of the issues:

  1. Login is not persistent. Every time the system makes a change, I have to log back in.
  2. Every time I upload a profile image, the image is gone next time I log in.
  3. I’ve had it create a system that allows users to submit content, but the content isn’t saving and the system is telling me it’s an authentication error.
  4. v0 created a button to check authentication status, but it says I’m not authenticated even when I am logged in.
  5. I get issues deploying to Vercel. The current issues says, “The block contains conflicting slug names for the same dynamic path.” The Fix with v0 button has not worked after several tries. The issue persists after v0 tried several times to fix.

I’m really happy with my progress on this site overall, but I’m feeling like giving up because this one authentication problem just doesn’t seem to be fixable in v0 and trying to use external tools like Gemini is making me MORE frustrated because it’s asking me to do things I don’t know how to do or can’t do. It wanted me to check the server logs, for example, but I can’t because I haven’t actually deployed it yet so all I have is the limited stuff v0 provides and Gemini says I NEED the full server logs.

I didn’t want to have to ask for help because I wanted to do all this myself, but I’m just stuck at this point and don’t know what to do.

EDIT:

After a lot of work with Gemini 2.5 I have finally arrived at this:

The issue is almost certainly an incompatibility or limitation within the v0 preview environment regarding the jsonwebtoken v9 library. The sandbox where v0 executes your server-side API route code cannot properly load or prepare the module when jsonwebtoken is imported, leading to the immediate crash and the generic 500 error response before your handler code runs.

Any ideas?

EDIT 2: Finally got some of the original errors fixed and the site was deployed, but it says there are 6 errors and 7 warnings. Working through them one at a time with v0 and Gemini now.

Did you know about these other v0 resources? A human should be here soon to help, but the answer may already be available even faster in one of these other posts.

This guide is a great place to start.

And these recordings can give you a look at v0 features and strategies in action: Topics tagged v0

Hey @tarav0! Welcome to the Vercel Community :waving_hand:

I’ve just seen your edits - thank you for keeping us in the loop with how you’re getting on. :sparkles:

Let us know if we can help with anything else!

There’s definitely confusion on what the preview editor can and cant do.
I wouldn’t suggest a regular saas tutorial of the website that follows through on buttons - but as a vibe coder the difference between what can happen in preview vs the different between how DB’s other variables work on both sides has been an issue that would clear up after like what I had to learn after 5 projects

there should also be an after deployment reading to talk about it after you’re first deployment - Only big consideration would be the friction on users using the product but should be implemented.

@pawlean