v0 module not found errors and dependency resolution issues in Turborepo monorepos

Problem

So in the new v0 when things break they break in a way that’s not really recoverable…

Error Log:

    7:01:01.454Z
    [SERVER]
    @maricopa-senior-living/web:dev: [browser] ./apps/web/components/ui/sheet.tsx:2:1
    @maricopa-senior-living/web:dev: Module not found: Can't resolve '@radix-ui/react-dialog'
    @maricopa-senior-living/web:dev:   1 | import * as React from "react"
    @maricopa-senior-living/web:dev: > 2 | import * as SheetPrimitive from "@radix-ui/react-dialog"
    @maricopa-senior-living/web:dev:     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    @maricopa-senior-living/web:dev:   3 | import { cva, type VariantProps } from "class-variance-authority"
    @maricopa-senior-living/web:dev:   4 | import { X } from "lucide-react"
    @maricopa-senior-living/web:dev:   5 | import { cn } from "@/lib/utils"
    @maricopa-senior-living/web:dev: 
    @maricopa-senior-living/web:dev: Import traces:
    @maricopa-senior-living/web:dev:   Client Component Browser:
    @maricopa-senior-living/web:dev:     ./apps/web/components/ui/sheet.tsx [Client Component Browser]
    @maricopa-senior-living/web:dev:     ./apps/web/components/Header.tsx [Client Component Browser]
    @maricopa-senior-living/web:dev:     ./apps/web/components/Header.tsx [Server Component]
    @maricopa-senior-living/web:dev:     ./apps/web/app/(website)/layout.tsx [Server Component]
    @maricopa-senior-living/web:dev: 
    @maricopa-senior-living/web:dev:   Client Component SSR:
    @maricopa-senior-living/web:dev:     ./apps/web/components/ui/sheet.tsx [Client Component SSR]
    @maricopa-senior-living/web:dev:     ./apps/web/components/Header.tsx [Client Component SSR]
    @maricopa-senior-living/web:dev:     ./apps/web/components/Header.tsx [Server Component]
    @maricopa-senior-living/web:dev:     ./apps/web/app/(website)/layout.tsx [Server Component]
    @maricopa-senior-living/web:dev: 
    @maricopa-senior-living/web:dev: https://nextjs.org/docs/messages/module-not-found 
    @maricopa-senior-living/web:dev: [browser] ./apps/web/components/ui/navigation-menu.tsx:2:1
    @maricopa-senior-living/web:dev: Module not found: Can't resolve '@radix-ui/react-navigation-menu'
    @maricopa-senior-living/web:dev:   1 | import * as React from "react"
    @maricopa-senior-living/web:dev: > 2 | import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"
    @maricopa-senior-living/web:dev:     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    @maricopa-senior-living/web:dev:   3 | import { cva } from "class-variance-authority"
    @maricopa-senior-living/web:dev:   4 | import { ChevronDown } from "lucide-react"
    @maricopa-senior-living/web:dev:   5 | import { cn } from "@/lib/utils"
    @maricopa-senior-living/web:dev: 
    @maricopa-senior-living/web:dev: Import traces:
    @maricopa-senior-living/web:dev:   Client Component Browser:
    @maricopa-senior-living/web:dev:     ./apps/web/components/ui/navigation-menu.tsx [Client Component Browser]
    @maricopa-senior-living/web:dev:     ./apps/web/components/Header.tsx [Client Component Browser]
    @maricopa-senior-living/web:dev:     ./apps/web/components/Header.tsx [Server Component]
    @maricopa-senior-living/web:dev:     ./apps/web/app/(website)/layout.tsx [Server Component]
    @maricopa-senior-living/web:dev: 
    @maricopa-senior-living/web:dev:   Client Component SSR:
    @maricopa-senior-living/web:dev:     ./apps/web/components/ui/navigation-menu.tsx [Client Component SSR]
    @maricopa-senior-living/web:dev:     ./apps/web/components/Header.tsx [Client Component SSR]
    @maricopa-senior-living/web:dev:     ./apps/web/components/Header.tsx [Server Component]
    @maricopa-senior-living/web:dev:     ./apps/web/app/(website)/layout.tsx [Server Component]
    @maricopa-senior-living/web:dev: 
    @maricopa-senior-living/web:dev: https://nextjs.org/docs/messages/module-not-found 
    @maricopa-senior-living/web:dev: [browser] ./apps/web/components/ui/badge.tsx:2:1
    @maricopa-senior-living/web:dev: Module not found: Can't resolve 'class-variance-authority'
    @maricopa-senior-living/web:dev:   1 | import * as React from "react"
    @maricopa-senior-living/web:dev: > 2 | import { cva, type VariantProps } from "class-variance-authority"
    @maricopa-senior-living/web:dev:     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

What I’ve Tried

Getting this to actually be fixed is a nightmare… I have tried pasting the error into v0 and no luck. v0 even created an install-deps.sh trying to resolve it. Maybe it’s because it’s a monorepo and v0 can’t support Turborepo monorepos when selecting a project :man_shrugging: but burning through credits just to get v0 to install deps just feels bad.

After no progress with getting v0 to fix it via chat, I decided to restart the sandbox and that at least got me a new error:

@maricopa-senior-living/web:dev: ERROR: command finished with error: command (/vercel/share/v0-next-shadcn/apps/web) /home/vercel-sandbox/.local/share/pnpm/.tools/pnpm/10.23.0/bin/pnpm run dev exited (1)
@maricopa-senior-living/web#dev: command (/vercel/share/v0-next-shadcn/apps/web) /home/vercel-sandbox/.local/share/pnpm/.tools/pnpm/10.23.0/bin/pnpm run dev exited (1)

After that it was finally able to load…

I appreciate the feedback here. Thank you! Passed onto the v0 team.

Hey! To help debug your v0 project, could you share your v0 chat link?
It looks like https://v0.app/chat/... — you can copy it from your browser’s address bar while in the chat.

You’ll also need to unlist the chat so our team can view it — here’s how: Sharing | v0 Docs

This helps the team reproduce what you’re seeing much faster. Thanks!