Skip to content

πŸ› Bug Report: novu.serve throws errors when built with next 15.5Β #9227

@imprakharshukla

Description

@imprakharshukla

πŸ“œ Description

novu.serve when used with next 15.5, throws errors when being built.

  // Export named HTTP methods
   export const GET = serve({ workflows })
  export const POST = serve({ workflows })
  export const OPTIONS = serve({ workflows })

It didn't happen with the previous i.e. 15.4.x versions.

Errors:

        Types of parameters 'event' and 'event' are incompatible.
        @yobr/platform:build:                   Type 'import("/Users/prakharshukla/Code/yobr/Yobplatform/.conductor/prakhar-yobr-870-new-simplified-flow/node_modules/.pnpm/@novu+framework@2.7.1_next@15.5.2_@opentelemetry+api@1.9.0_babel-plugin-react-compiler@_307f2043a84faea25b3330a8d3688afe/node_modules/@novu/framework/dist/esm/health-check.types-D6N1lsYH").aq<Record<...' is not assignable to type 'import("/Users/prakharshukla/Code/yobr/Yobplatform/.conductor/prakhar-yobr-870-new-simplified-flow/node_modules/.pnpm/@novu+framework@2.7.1_next@15.4.2_@opentelemetry+api@1.9.0_react-dom@19.1.1_react@19.1._915bddd47214dcc8612013c42c461992/node_modules/@novu/framework/dist/esm/health-check.types-D6N1lsYH").aq<Record<...'.
           Types of parameters 'event' and 'event' are incompatible.
        @yobr/platform:build:                   Type 'import("/Users/prakharshukla/Code/yobr/Yobplatform/.conductor/prakhar-yobr-870-new-simplified-flow/node_modules/.pnpm/@novu+framework@2.7.1_next@15.5.2_@opentelemetry+api@1.9.0_babel-plugin-react-compiler@_307f2043a84faea25b3330a8d3688afe/node_modules/@novu/framework/dist/esm/health-check.types-D6N1lsYH").aq<Record<...' is not assignable to type 'import("/Users/prakharshukla/Code/yobr/Yobplatform/.conductor/prakhar-yobr-870-new-simplified-flow/node_modules/.pnpm/@novu+framework@2.7.1_next@15.4.2_@opentelemetry+api@1.9.0_react-dom@19.1.1_react@19.1._915bddd47214dcc8612013c42c461992/node_modules/@novu/framework/dist/esm/health-check.types-D6N1lsYH").aq<Record<...'.
        @yobr/platform:build:                     The types of 'step.custom' are incompatible between these types.
        @yobr/platform:build:                       Types of parameters 'resolve' and 'resolve' are incompatible.
        @yobr/platform:build:                         Type 'Awaitable<T_Outputs>' is not assignable to type 'Awaitable<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                           Type 'T_Outputs' is not assignable to type 'Awaitable<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                             Type 'T_IntermediaryOutput' is not assignable to type 'Awaitable<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                               Type 'Record<string, unknown>' is not assignable to type 'Awaitable<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                                 Type 'Record<string, unknown>' is missing the following properties from type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>': then, catch, finally, [Symbol.toStringTag]
        @yobr/platform:build:                                   Type 'T_IntermediaryOutput' is not assignable to type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                                     Type 'Record<string, unknown>' is missing the following properties from type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>': then, catch, finally, [Symbol.toStringTag]
        @yobr/platform:build:                                       Type 'T_Outputs' is not assignable to type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                                         Type 'T_IntermediaryOutput' is not assignable to type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                                           Type 'Record<string, unknown>' is missing the following properties from type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>': then, catch, finally, [Symbol.toStringTag]
      ```

### πŸ‘Ÿ Reproduction steps

1. Upgrade to next 15.5.
2. have a route serving novu workflows like this:
```ts
import { serve } from '@novu/framework/next'
import {
  jobUpdateRejected,
} from '@yobr/trpc/novu/workflows'

// Collect all workflows
const workflows = [
  jobUpdateRejected,
]

// // Export named HTTP methods
export const GET = serve({ workflows })
export const POST = serve({ workflows })
export const OPTIONS = serve({ workflows })

πŸ‘ Expected behavior

It should build successfully, commenting the .serve function makes it build.

πŸ‘Ž Actual Behavior with Screenshots

Errors:

        Types of parameters 'event' and 'event' are incompatible.
        @yobr/platform:build:                   Type 'import("/Users/prakharshukla/Code/yobr/Yobplatform/.conductor/prakhar-yobr-870-new-simplified-flow/node_modules/.pnpm/@novu+framework@2.7.1_next@15.5.2_@opentelemetry+api@1.9.0_babel-plugin-react-compiler@_307f2043a84faea25b3330a8d3688afe/node_modules/@novu/framework/dist/esm/health-check.types-D6N1lsYH").aq<Record<...' is not assignable to type 'import("/Users/prakharshukla/Code/yobr/Yobplatform/.conductor/prakhar-yobr-870-new-simplified-flow/node_modules/.pnpm/@novu+framework@2.7.1_next@15.4.2_@opentelemetry+api@1.9.0_react-dom@19.1.1_react@19.1._915bddd47214dcc8612013c42c461992/node_modules/@novu/framework/dist/esm/health-check.types-D6N1lsYH").aq<Record<...'.
           Types of parameters 'event' and 'event' are incompatible.
        @yobr/platform:build:                   Type 'import("/Users/prakharshukla/Code/yobr/Yobplatform/.conductor/prakhar-yobr-870-new-simplified-flow/node_modules/.pnpm/@novu+framework@2.7.1_next@15.5.2_@opentelemetry+api@1.9.0_babel-plugin-react-compiler@_307f2043a84faea25b3330a8d3688afe/node_modules/@novu/framework/dist/esm/health-check.types-D6N1lsYH").aq<Record<...' is not assignable to type 'import("/Users/prakharshukla/Code/yobr/Yobplatform/.conductor/prakhar-yobr-870-new-simplified-flow/node_modules/.pnpm/@novu+framework@2.7.1_next@15.4.2_@opentelemetry+api@1.9.0_react-dom@19.1.1_react@19.1._915bddd47214dcc8612013c42c461992/node_modules/@novu/framework/dist/esm/health-check.types-D6N1lsYH").aq<Record<...'.
        @yobr/platform:build:                     The types of 'step.custom' are incompatible between these types.
        @yobr/platform:build:                       Types of parameters 'resolve' and 'resolve' are incompatible.
        @yobr/platform:build:                         Type 'Awaitable<T_Outputs>' is not assignable to type 'Awaitable<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                           Type 'T_Outputs' is not assignable to type 'Awaitable<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                             Type 'T_IntermediaryOutput' is not assignable to type 'Awaitable<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                               Type 'Record<string, unknown>' is not assignable to type 'Awaitable<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                                 Type 'Record<string, unknown>' is missing the following properties from type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>': then, catch, finally, [Symbol.toStringTag]
        @yobr/platform:build:                                   Type 'T_IntermediaryOutput' is not assignable to type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                                     Type 'Record<string, unknown>' is missing the following properties from type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>': then, catch, finally, [Symbol.toStringTag]
        @yobr/platform:build:                                       Type 'T_Outputs' is not assignable to type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                                         Type 'T_IntermediaryOutput' is not assignable to type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>'.
        @yobr/platform:build:                                           Type 'Record<string, unknown>' is missing the following properties from type 'Promise<FromSchemaUnvalidated<T_OutputsSchema>>': then, catch, finally, [Symbol.toStringTag]
      ```

### Novu version

Novu Saas

### npm version

10.9.2

### node version

v23.7.0

### πŸ“ƒ Provide any additional context for the Bug.

_No response_

### πŸ‘€ Have you spent some time to check if this bug has been raised before?

- [x] I checked and didn't find a similar issue

### 🏒 Have you read the Contributing Guidelines?

- [x] I have read the [Contributing Guidelines](https://github.com/novuhq/novu/blob/main/CONTRIBUTING.md)

### Are you willing to submit PR?

Yes I am willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions