@@ -642,7 +642,7 @@ func registerServices[T transaction.Tx](s appmodulev2.AppModule, app *App[T], re
642642
643643 // if module implements register msg handlers
644644 if module , ok := s .(appmodulev2.HasMsgHandlers ); ok {
645- wrapper := stfRouterWrapper { stfRouter : app .msgRouterBuilder }
645+ wrapper := newStfRouterWrapper ( app .msgRouterBuilder )
646646 module .RegisterMsgHandlers (& wrapper )
647647 if wrapper .error != nil {
648648 return fmt .Errorf ("unable to register handlers: %w" , wrapper .error )
@@ -651,7 +651,7 @@ func registerServices[T transaction.Tx](s appmodulev2.AppModule, app *App[T], re
651651
652652 // if module implements register query handlers
653653 if module , ok := s .(appmodulev2.HasQueryHandlers ); ok {
654- wrapper := stfRouterWrapper { stfRouter : app .queryRouterBuilder }
654+ wrapper := newStfRouterWrapper ( app .queryRouterBuilder )
655655 module .RegisterQueryHandlers (& wrapper )
656656
657657 for path , handler := range wrapper .handlers {
@@ -842,6 +842,13 @@ type stfRouterWrapper struct {
842842 handlers map [string ]appmodulev2.Handler
843843}
844844
845+ func newStfRouterWrapper (stfRouterBuilder * stf.MsgRouterBuilder ) stfRouterWrapper {
846+ wrapper := stfRouterWrapper {stfRouter : stfRouterBuilder }
847+ wrapper .error = nil
848+ wrapper .handlers = map [string ]appmodulev2.Handler {}
849+ return wrapper
850+ }
851+
845852func (s * stfRouterWrapper ) RegisterHandler (handler appmodulev2.Handler ) {
846853 req := handler .MakeMsg ()
847854 requestName := gogoproto .MessageName (req )
@@ -854,7 +861,7 @@ func (s *stfRouterWrapper) RegisterHandler(handler appmodulev2.Handler) {
854861 s .error = errors .Join (s .error , err )
855862
856863 // also make the decoder
857- if s .error == nil {
864+ if s .handlers == nil {
858865 s .handlers = map [string ]appmodulev2.Handler {}
859866 }
860867 s .handlers [requestName ] = handler
0 commit comments