augieA
tRPC5mo ago
1 reply
augie

tRPC on pages router broken after Next 15.5.x

A fresh project created with bunx create-t3-app@latest fails to build with the error:

pages-router on  main [+] via  v22.11.0 λ bun run build
$ next build
   ▲ Next.js 15.5.1
   - Environments: .env

   Linting and checking validity of types  ..Failed to compile.

.next/types/validator.ts:52:11
Type error: Type 'typeof import("C:/Users/augie/dev/pages-router/src/pages/api/trpc/[trpc]")' does not satisfy the expected type 'ApiRouteConfig'.
  The types returned by 'default(...)' are incompatible between these types.
    Type 'unknown' is not assignable to type 'void | Response | Promise<void | Response>'.

  50 | {
  51 |   const handler = {} as typeof import("../../src/pages/api/trpc/[trpc].js")
> 52 |   handler satisfies ApiRouteConfig
     |           ^
  53 | }
  54 |
  55 |
Next.js build worker exited with code: 1 and signal: null
error: script "build" exited with code 1


It appears this bug was introduced with the release of Next 15.5.0 when the file .next/types/validator.ts is created at build time.

Here are the contents of [trpc].ts

import { createNextApiHandler } from "@trpc/server/adapters/next";

import { env } from "~/env";
import { appRouter } from "~/server/api/root";
import { createTRPCContext } from "~/server/api/trpc";

// export API handler
export default createNextApiHandler({
  router: appRouter,
  createContext: createTRPCContext,
  onError:
    env.NODE_ENV === "development"
      ? ({ path, error }) => {
          console.error(
            `❌ tRPC failed on ${path ?? "<no-path>"}: ${error.message}`,
          );
        }
      : undefined,
});
PGHkD9B.png
yJj53FF.png
Was this page helpful?