diff --git a/wasm/channels.go b/wasm/channels.go
index 23c5cb9bad045d95d91085514837e1acb90350d6..31b0b4712318aa6a77635f43f3d14453347b301a 100644
--- a/wasm/channels.go
+++ b/wasm/channels.go
@@ -245,13 +245,12 @@ func NewChannelsManagerWithIndexedDb(_ js.Value, args []js.Value) interface{} {
 	privateIdentity := utils.CopyBytesToGo(args[1])
 
 	fn := func(uuid uint64, channelID *id.ID) {
-		args[2].Invoke(uuid, channelID.Marshal())
+		args[2].Invoke(uuid, utils.CopyBytesToJS(channelID.Marshal()))
 	}
 
 	model := indexedDb.NewWASMEventModelBuilder(fn)
 
 	promiseFn := func(resolve, reject func(args ...interface{}) js.Value) {
-
 		cm, err := bindings.NewChannelsManagerGoEventModel(
 			cmixID, privateIdentity, model)
 		if err != nil {
@@ -292,13 +291,12 @@ func LoadChannelsManagerWithIndexedDb(_ js.Value, args []js.Value) interface{} {
 	storageTag := args[1].String()
 
 	fn := func(uuid uint64, channelID *id.ID) {
-		args[2].Invoke(uuid, channelID.Marshal())
+		args[2].Invoke(uuid, utils.CopyBytesToJS(channelID.Marshal()))
 	}
 
 	model := indexedDb.NewWASMEventModelBuilder(fn)
 
 	promiseFn := func(resolve, reject func(args ...interface{}) js.Value) {
-
 		cm, err := bindings.LoadChannelsManagerGoEventModel(
 			cmixID, storageTag, model)
 		if err != nil {