#3476·feathers

Cannot redefine property: Symbol(@feathersjs/schema/dispatch)

Author: GodBleakCreated Apr 27, 2024Updated Sep 14, 2026

I've encountered an issue where resolveExternal will throw Cannot redefine property: Symbol(@feathersjs/schema/dispatch). However, I can't reproduce this reliably. Sometimes the guard introduced with #3380 catches it, other times it passes the guard and the property is defined by runResolvers, then setDispatch attempts to redefine it. I don't know what influences the different behaviour, as I'll get either result, seemingly at random, rerunning the server without changes. The resolver is just as it was generated:

typescript
export const messageExternalResolver = resolve<Message, HookContext<MessageService>>({})

Along with the around hooks:

typescript
around: {
  all: [authenticate('jwt'), schemaHooks.resolveExternal(messageExternalResolver), schemaHooks.resolveResult(messageResolver)]
}

I think the guard might need to be moved to immediately before setDispatch, or perhaps a second guard could be added.

System configuration

Module versions: @feathers/feathers:5.0.24, @feathers/schema:5.0.23

NodeJS version: NodeJS v18.12.1 with tsx v4.7.1

Operating System: Manjaro Linux

Module Loader: ESM