Trouble with `@effect/rpc` Web Handler Hanging in Next.js
I am trying to use
@effect/rpc@effect/rpc with nextjs, but I can't get the web handler to work. The web handler just hangs before executing my rpc handler.export const PromptGroup = RpcGroup.make(
Rpc.make("Prompt", {
success: Schema.String,
payload: {
prompt: Schema.String,
},
}),
);
const PromptRpcHandler = PromptGroup.toLayer({
Prompt: ({ prompt }) =>
Effect.gen(function* () {
console.log("EXECUTING INSIDE THE WEB HANDLER"); // <- Never prints this
return prompt; // <- Dummy impl for now
}),
});
const webHandler = Effect.gen(function* () {
const app = yield* RpcServer.toHttpApp(PromptGroup);
return HttpApp.toWebHandler(app);
}).pipe(
Effect.provide([PromptRpcHandler, layerRpcSerialization]),
Effect.scoped,
);
export const POST = async (request: NextRequest) => {
const handler = await Effect.runPromise(webHandler);
console.log("WEB HANDLER HAS BEEN CONSTRUCTED");
console.log("TYPE OF WEB HANDLER IS:");
console.log(typeof handler);
const resp = await handler(request); // <- Hangs here
return resp;
};export const PromptGroup = RpcGroup.make(
Rpc.make("Prompt", {
success: Schema.String,
payload: {
prompt: Schema.String,
},
}),
);
const PromptRpcHandler = PromptGroup.toLayer({
Prompt: ({ prompt }) =>
Effect.gen(function* () {
console.log("EXECUTING INSIDE THE WEB HANDLER"); // <- Never prints this
return prompt; // <- Dummy impl for now
}),
});
const webHandler = Effect.gen(function* () {
const app = yield* RpcServer.toHttpApp(PromptGroup);
return HttpApp.toWebHandler(app);
}).pipe(
Effect.provide([PromptRpcHandler, layerRpcSerialization]),
Effect.scoped,
);
export const POST = async (request: NextRequest) => {
const handler = await Effect.runPromise(webHandler);
console.log("WEB HANDLER HAS BEEN CONSTRUCTED");
console.log("TYPE OF WEB HANDLER IS:");
console.log(typeof handler);
const resp = await handler(request); // <- Hangs here
return resp;
};// next dev server logs:
✓ Compiled /api/rpc in 959ms
WEB HANDLER HAS BEEN CONSTRUCTED
TYPE OF WEB HANDLER IS:
function
// hangs here// next dev server logs:
✓ Compiled /api/rpc in 959ms
WEB HANDLER HAS BEEN CONSTRUCTED
TYPE OF WEB HANDLER IS:
function
// hangs here