remix-run/react-router · error

The `future.v8_trailingSlashAwareDataRequests` flag has been

Error message

The `future.v8_trailingSlashAwareDataRequests` flag has been removed because trailing slash-aware data requests are now the default behavior

What it means

Fatal config-validation error: readConfig rejects configs whose `future` object still has `unstable_trailingSlashAwareDataRequests` or `v8_trailingSlashAwareDataRequests`. Client data requests now always preserve/normalize trailing slashes to match the router's trailing-slash config, so the flag was removed; its presence (any value) aborts dev/build/typegen with this message.

Source

Thrown at packages/react-router-dev/config/config.ts:735

      "v8_passThroughRequests" in futureConfig
    ) {
      return err(
        "The `future.v8_passThroughRequests` flag has been removed because pass-through requests are now the default behavior",
      );
    }
    if (
      "unstable_middleware" in futureConfig ||
      "v8_middleware" in futureConfig
    ) {
      return err(
        "The `future.v8_middleware` flag has been removed because middleware is now always enabled",
      );
    }
    if (
      "unstable_trailingSlashAwareDataRequests" in futureConfig ||
      "v8_trailingSlashAwareDataRequests" in futureConfig
    ) {
      return err(
        "The `future.v8_trailingSlashAwareDataRequests` flag has been removed because trailing slash-aware data requests are now the default behavior",
      );
    }
    if ("unstable_subResourceIntegrity" in futureConfig) {
      return err(
        "The `future.unstable_subResourceIntegrity` flag has been stabilized and moved to a top-level `config.subResourceIntegrity` field",
      );
    }
  }

  let future: FutureConfig = {
    unstable_enableNodeReadableStream:
      userAndPresetConfigs.future?.unstable_enableNodeReadableStream ?? false,
    unstable_optimizeDeps:
      userAndPresetConfigs.future?.unstable_optimizeDeps ?? false,
  };

  let allowedActionOrigins = userAndPresetConfigs.allowedActionOrigins ?? false;

View on GitHub (pinned to 6beaca3952)

Solutions

  1. Remove the `v8_trailingSlashAwareDataRequests` / `unstable_trailingSlashAwareDataRequests` key from `future` — the behavior is default now
  2. If you previously set it to false, re-test routes whose paths differ by a trailing slash (e.g. `/path` vs `/path/`) since the aware behavior now always applies
  3. Run typegen/typecheck to catch lingering typed references
  4. Strip all removed v8_* future flags in one cleanup commit

Example fix

// before - react-router.config.ts
export default {
  future: { v8_trailingSlashAwareDataRequests: true },
} satisfies Config;

// after
export default {} satisfies Config; // trailing slash-aware data requests are the default
Defensive patterns

Strategy: validation

Validate before calling

import fs from "node:fs";
let cfg = fs.readFileSync("react-router.config.ts", "utf8");
if (/unstable_trailingSlashAwareDataRequests|v8_trailingSlashAwareDataRequests/.test(cfg)) {
  throw new Error("Remove `future.v8_trailingSlashAwareDataRequests` — it is now the default");
}

Type guard

function isCurrentFutureConfig(f: unknown): boolean {
  return typeof f === "object" && f !== null &&
    !("v8_trailingSlashAwareDataRequests" in f) && !("unstable_trailingSlashAwareDataRequests" in f);
}

Try / catch

try {
  await runReactRouterCli("build");
} catch (e) {
  if (e instanceof Error && e.message.includes("v8_trailingSlashAwareDataRequests")) {
    // strip the key and re-run; then smoke-test /path vs /path/ data requests
  } else throw e;
}

Prevention

When it happens

Trigger: Any config-loading run with `future: { v8_trailingSlashAwareDataRequests: ... }` or `future: { unstable_trailingSlashAwareDataRequests: ... }` in the effective config, including inherited presets.

Common situations: v7 apps that opted in to fix double-slash or redirect-loop issues between the browser and `.data` requests; upgrading after the behavior became the default; stale shared configs in monorepos.

Related errors


AI-assisted analysis of remix-run/react-router@6beaca3952 (2026-08-18). Data as JSON: /api/errors/f73b902e8076c7da. Report an issue: GitHub.