Skip to content

@vercel/flags-core@1.4.0 imports @vercel/flags-definitions, which is not on the npm registry — error on next build #384

Description

@MaybeThisIsRu

Summary

@vercel/flags-core@1.4.0 (pulled in transitively by @flags-sdk/vercel@1.3.0) contains compiled code that imports @vercel/flags-definitions. That package is not declared in @vercel/flags-core's dependencies and is not published to
the npm registry. As a result, any project using @flags-sdk/vercel fails next build with Module not found: Can't resolve '@vercel/flags-definitions'.

Local next dev does not surface the issue because dev mode compiles routes lazily and skips a full module-resolution sweep. Production builds (and Vercel deploys) hit it immediately.

Reproduction

Standard Vercel Flags setup, following https://vercel.com/docs/flags/vercel-flags/sdks/flags-sdk verbatim.

Flag definitionsrc/flags/my_flag.ts:

import { flag } from 'flags/next'
import { vercelAdapter } from '@flags-sdk/vercel'

type Entities = {
  userId: string
}

const identify = async (): Promise<Entities | null> => null

export const myFlag = flag<boolean, Entities>({
  key: 'my_flag',
  description: 'Example boolean feature flag',
  defaultValue: false,
  identify,
  adapter: vercelAdapter(),
})

Flags Discovery Endpointsrc/app/.well-known/vercel/flags/route.ts:

import { createFlagsDiscoveryEndpoint, getProviderData } from 'flags/next'
import * as flags from 'src/flags'

export const GET = createFlagsDiscoveryEndpoint(async () => getProviderData(flags))

Build: next build (also fails on every Vercel deploy).

Actual error

Module not found: Can't resolve '@vercel/flags-definitions' in '/path/to/node_modules/@vercel/flags-core/dist'

Import trace for requested module:
./node_modules/@vercel/flags-core/dist/chunk-OABKRAPP.js
./node_modules/@vercel/flags-core/dist/index.default.js
./node_modules/@flags-sdk/vercel/dist/index.js
./src/flags/my_flag.ts
./src/flags/index.ts
./src/app/.well-known/vercel/flags/route.ts

Verification that the package is missing

  • npm view @vercel/flags-definitions returns 404 Not Found from registry.npmjs.org.
  • node_modules/@vercel/flags-core/package.json declares only @vercel/functions, jose, and js-xxhash in dependencies. Its peerDependencies are @openfeature/server-sdk (optional) and next (optional). @vercel/flags-definitions is not
    referenced anywhere in the manifest.
  • Grepping node_modules/@vercel/flags-core/dist/chunk-OABKRAPP.js confirms a literal "@vercel/flags-definitions" import string is present in the compiled bundle.

Expected behavior

@vercel/flags-core@1.4.0 should build cleanly when consumed via the canonical Vercel Flags setup. Either:

  1. Publish @vercel/flags-definitions to npm and declare it in @vercel/flags-core's dependencies, or
  2. Re-bundle @vercel/flags-core so the import to @vercel/flags-definitions is inlined or removed.

Environment

Version
Next.js 15.4.10
flags 4.0.6
@flags-sdk/vercel 1.3.0
@vercel/flags-core (resolved transitively) 1.4.0
@vercel/toolbar 0.2.5
Node v22.19.0
Package manager Yarn 1.22.22

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions