Getting DataCloneError while using instance of a class as return value of RPC method

Error message: DataCloneError: Could not serialize object of type "st". This type does not support serialization.

Hono route
app.get("/pay/:id", async (c) => {
  const id =  c.req.param("id");
  const services = c.get("services");

  const paymentService = await c.env.PAYMENTS.newPaymentService(services.logger);
  try {
    const response = await paymentService.queryPaymentStatus({
      pspReference: id,
      reference: id,
      sessionId: id
    });

    return c.json({
      status: "successful",
      message: "api request completed",
      rpcResponse: response
    })
  } finally {
    paymentService[Symbol.dispose]()
  }
})


RPC class

export class PaymentService extends WorkerEntrypoint<Env> {
  fetch(request: Request): Response | Promise<Response> {
    return new Response("Hello from payments RPC")
  }

  async newPaymentService(logger: Logger) {
    initCache(this.ctx, this.env);
    return new Payments(logger);
  }
}
Was this page helpful?