refinedev/refine · warning

Example: `refine start ./build/server/index.js`

Error message

Example: `refine start ./build/server/index.js`

What it means

Usage-hint line in the remix-vite warning block of the Refine CLI runner, showing the exact script form expected. It fires together with the fallback warning whenever a Remix Vite project starts without an entry argument. No error occurs; the CLI proceeds with the default entry.

Source

Thrown at packages/cli/src/commands/runner/projectScripts.ts:100

  },
  [ProjectTypes.REMIX_VITE]: {
    getDev: (args: string[]) => ["vite:dev", ...args],
    getStart: (args: string[]) => {
      // remix-serve accepts a path to the entry file as an argument
      // if we have arguments, we will pass them to remix-serve and do nothing.
      // ex: `refine start ./build/server/index.js`
      const hasArgs = args?.length;
      if (hasArgs) {
        return args;
      }

      // otherwise print a warning and use `./build/server/index.js` as default
      console.log();
      console.warn(
        "🚨 Remix requires a path to the entry file. Please provide it as an argument to `refine start` command in package.json scripts",
      );
      console.warn("Refine will use `./build/server/index.js` as default");
      console.warn("Example: `refine start ./build/server/index.js`");
      console.log();

      return ["./build/server/index.js"];
    },
    getBuild: (args: string[]) => ["vite:build", ...args],
    getBin: (type?: "dev" | "start" | "build") => {
      return resolveBin(type === "start" ? "remix-serve" : "remix");
    },
  },
  [ProjectTypes.REMIX_SPA]: {
    getDev: (args: string[]) => ["vite:dev", ...args],
    getStart: (args: string[]) => ["preview", ...args],
    getBuild: (args: string[]) => ["vite:build", ...args],
    getBin: (type?: "dev" | "start" | "build") => {
      return resolveBin(type === "start" ? "vite" : "remix");
    },
  },
  [ProjectTypes.CRACO]: {

View on GitHub (pinned to 779d52a20e)

Solutions

  1. Update package.json: `"start": "refine start ./build/server/index.js"`
  2. Verify the built server bundle location after `refine build`

Example fix

// before
"start": "refine start"
// after
"start": "refine start ./build/server/index.js"
Defensive patterns

Strategy: validation

Validate before calling

// package.json check in a prestart script
"prestart": "node -e \"require('fs').accessSync('./build/server/index.js')\""

Prevention

When it happens

Trigger: `refine start` without a positional entry argument under the remix-vite preset of projectScripts.ts (hasArgs false).

Common situations: New Remix Vite Refine templates; copy-pasted scripts from classic Remix projects; automated deployments that strip script arguments.

Related errors


AI-assisted analysis of refinedev/refine@779d52a20e (2026-08-27). Data as JSON: /api/errors/1352a1c9e79d7e55. Report an issue: GitHub.