augie
augie14h ago

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
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,
});
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,
});
No description
No description
0 Replies
No replies yetBe the first to reply to this messageJoin

Did you find this page helpful?