tRPC on pages router broken after Next 15.5.x
A fresh project created with
It appears this bug was introduced with the release of Next 15.5.0 when the file
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
.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,
});


0 Replies