diff --git a/.changeset/smooth-baboons-repeat.md b/.changeset/smooth-baboons-repeat.md new file mode 100644 index 0000000000..6cd6e44ac1 --- /dev/null +++ b/.changeset/smooth-baboons-repeat.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): Ensure that errorHandler middleware is applied if no middleware config exists diff --git a/packages/medusa/src/loaders/helpers/routing/index.ts b/packages/medusa/src/loaders/helpers/routing/index.ts index fc3dd89b4f..3dd53092d0 100644 --- a/packages/medusa/src/loaders/helpers/routing/index.ts +++ b/packages/medusa/src/loaders/helpers/routing/index.ts @@ -653,12 +653,7 @@ export class RoutesLoader { */ applyErrorHandlerMiddleware(): void { const middlewareDescriptor = this.globalMiddlewaresDescriptor - - if (!middlewareDescriptor) { - return - } - - const errorHandlerFn = middlewareDescriptor.config?.errorHandler + const errorHandlerFn = middlewareDescriptor?.config?.errorHandler /** * If the user has opted out of the error handler then return @@ -740,6 +735,10 @@ export class RoutesLoader { */ for (const route of routes) { + if (!route.middlewares || !route.middlewares.length) { + continue + } + const methods = ( Array.isArray(route.method) ? route.method : [route.method] ).filter(Boolean) as MiddlewareVerb[] diff --git a/packages/medusa/src/loaders/helpers/routing/types.ts b/packages/medusa/src/loaders/helpers/routing/types.ts index 3a71c2fba1..d5521f9009 100644 --- a/packages/medusa/src/loaders/helpers/routing/types.ts +++ b/packages/medusa/src/loaders/helpers/routing/types.ts @@ -65,7 +65,7 @@ export type MiddlewareRoute = { method?: MiddlewareVerb | MiddlewareVerb[] matcher: string | RegExp bodyParser?: ParserConfig - middlewares: MiddlewareFunction[] + middlewares?: MiddlewareFunction[] } export type MiddlewaresConfig = {