diff --git a/indexedDb/channels/handlers.go b/indexedDb/channels/handlers.go
index 9a1ee66351b4c08c2af02fb685bbd6b3e22dbbda..ca9a4f4873427d32d9f7c3c52844cd79a305d3d1 100644
--- a/indexedDb/channels/handlers.go
+++ b/indexedDb/channels/handlers.go
@@ -27,6 +27,8 @@ import (
 	"time"
 )
 
+var zeroUUID = []byte{0, 0, 0, 0, 0, 0, 0, 0}
+
 // manager handles the event model and the message handler, which is used to
 // send information between the event model and the main thread.
 type manager struct {
@@ -49,13 +51,13 @@ func (m *manager) RegisterHandlers() {
 	m.mh.RegisterHandler(worker.DeleteMessageTag, m.deleteMessageHandler)
 }
 
-// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns nil on
-// success or an error message on failure.
+// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns an
+// empty slice on success or an error message on failure.
 func (m *manager) newWASMEventModelHandler(data []byte) ([]byte, error) {
 	var msg mChannels.NewWASMEventModelMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return []byte{}, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -64,7 +66,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) ([]byte, error) {
 	encryption, err := cryptoChannel.NewCipherFromJSON(
 		[]byte(msg.EncryptionJSON), rng.GetStream())
 	if err != nil {
-		return nil, errors.Errorf(
+		return []byte{}, errors.Errorf(
 			"failed to JSON unmarshal Cipher from main thread: %+v", err)
 	}
 
@@ -73,7 +75,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) ([]byte, error) {
 	if err != nil {
 		return []byte(err.Error()), nil
 	}
-	return nil, nil
+	return []byte{}, nil
 }
 
 // messageReceivedCallback sends calls to the MessageReceivedCallback in the
@@ -178,13 +180,13 @@ func (m *manager) leaveChannelHandler(data []byte) ([]byte, error) {
 	return nil, nil
 }
 
-// receiveMessageHandler is the handler for wasmModel.ReceiveMessage. Returns
-// nil on error or the JSON marshalled UUID (uint64) on success.
+// receiveMessageHandler is the handler for wasmModel.ReceiveMessage. Returns a
+// UUID of 0 on error or the JSON marshalled UUID (uint64) on success.
 func (m *manager) receiveMessageHandler(data []byte) ([]byte, error) {
 	var msg channels.ModelMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return zeroUUID, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -195,18 +197,18 @@ func (m *manager) receiveMessageHandler(data []byte) ([]byte, error) {
 
 	uuidData, err := json.Marshal(uuid)
 	if err != nil {
-		return nil, errors.Errorf("failed to JSON marshal UUID : %+v", err)
+		return zeroUUID, errors.Errorf("failed to JSON marshal UUID : %+v", err)
 	}
 	return uuidData, nil
 }
 
-// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns
-// nil on error or the JSON marshalled UUID (uint64) on success.
+// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns a UUID
+// of 0 on error or the JSON marshalled UUID (uint64) on success.
 func (m *manager) receiveReplyHandler(data []byte) ([]byte, error) {
 	var msg mChannels.ReceiveReplyMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return zeroUUID, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -217,18 +219,18 @@ func (m *manager) receiveReplyHandler(data []byte) ([]byte, error) {
 
 	uuidData, err := json.Marshal(uuid)
 	if err != nil {
-		return nil, errors.Errorf("failed to JSON marshal UUID : %+v", err)
+		return zeroUUID, errors.Errorf("failed to JSON marshal UUID : %+v", err)
 	}
 	return uuidData, nil
 }
 
 // receiveReactionHandler is the handler for wasmModel.ReceiveReaction. Returns
-// nil on error or the JSON marshalled UUID (uint64) on success.
+// a UUID of 0 on error or the JSON marshalled UUID (uint64) on success.
 func (m *manager) receiveReactionHandler(data []byte) ([]byte, error) {
 	var msg mChannels.ReceiveReplyMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return zeroUUID, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -239,7 +241,7 @@ func (m *manager) receiveReactionHandler(data []byte) ([]byte, error) {
 
 	uuidData, err := json.Marshal(uuid)
 	if err != nil {
-		return nil, errors.Errorf("failed to JSON marshal UUID : %+v", err)
+		return zeroUUID, errors.Errorf("failed to JSON marshal UUID : %+v", err)
 	}
 	return uuidData, nil
 }
diff --git a/indexedDb/channels/init.go b/indexedDb/channels/init.go
index 801d861313655aabefe66e6349e6708d15f48359..da730d7a206bc266e86cad7ccd67aa4d4b4d72ae 100644
--- a/indexedDb/channels/init.go
+++ b/indexedDb/channels/init.go
@@ -61,8 +61,7 @@ func newWASMModel(databaseName string, encryption cryptoChannel.Cipher,
 	openRequest, err := idb.Global().Open(ctx, databaseName, currentVersion,
 		func(db *idb.Database, oldVersion, newVersion uint) error {
 			if oldVersion == newVersion {
-				jww.INFO.Printf("IndexDb version is current: v%d",
-					newVersion)
+				jww.INFO.Printf("IndexDb version is current: v%d", newVersion)
 				return nil
 			}
 
@@ -208,7 +207,7 @@ func RegisterDatabaseNameStore(m *manager) {
 				return errors.New(string(response))
 			}
 		case <-time.After(indexedDbWorker.ResponseTimeout):
-			return errors.Errorf("timed out after %s waiting for "+
+			return errors.Errorf("[WW] Timed out after %s waiting for "+
 				"response about storing the database name in local "+
 				"storage in the main thread", indexedDbWorker.ResponseTimeout)
 		}
diff --git a/indexedDb/channels/main.go b/indexedDb/channels/main.go
index 2f19a6488a183cb2e537873e433ee683aa7e1109..5a950b922f0791f6b316aee42547566e12434b22 100644
--- a/indexedDb/channels/main.go
+++ b/indexedDb/channels/main.go
@@ -11,15 +11,19 @@ package main
 
 import (
 	"fmt"
+	jww "github.com/spf13/jwalterweatherman"
 	"gitlab.com/elixxir/xxdk-wasm/indexedDb"
 )
 
 func main() {
-	fmt.Println("Starting xxDK WebAssembly Channels Database Worker.")
+	fmt.Println("[WW] Starting xxDK WebAssembly Channels Database Worker.")
+	jww.SetStdoutThreshold(jww.LevelDebug)
+	jww.INFO.Print("[WW] Starting xxDK WebAssembly Channels Database Worker.")
 
 	m := &manager{mh: indexedDb.NewMessageHandler("ChannelsIndexedDbWorker")}
 	RegisterDatabaseNameStore(m)
 	m.RegisterHandlers()
 	m.mh.SignalReady()
 	<-make(chan bool)
+	fmt.Println("[WW] Closing xxDK WebAssembly Channels Database Worker.")
 }
diff --git a/indexedDb/dm/handlers.go b/indexedDb/dm/handlers.go
index 95ed73edbc896b166e546a5c615df65ba54c32a3..a49783c67ff1af6c97cda3f0119cb0720497f0bc 100644
--- a/indexedDb/dm/handlers.go
+++ b/indexedDb/dm/handlers.go
@@ -25,6 +25,8 @@ import (
 	"time"
 )
 
+var zeroUUID = []byte{0, 0, 0, 0, 0, 0, 0, 0}
+
 // manager handles the event model and the message handler, which is used to
 // send information between the event model and the main thread.
 type manager struct {
@@ -43,13 +45,13 @@ func (m *manager) RegisterHandlers() {
 	m.mh.RegisterHandler(worker.UpdateSentStatusTag, m.updateSentStatusHandler)
 }
 
-// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns nil on
-// success or an error message on failure.
+// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns an
+// empty slice on success or an error message on failure.
 func (m *manager) newWASMEventModelHandler(data []byte) ([]byte, error) {
 	var msg mChannels.NewWASMEventModelMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return []byte{}, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -58,8 +60,8 @@ func (m *manager) newWASMEventModelHandler(data []byte) ([]byte, error) {
 	encryption, err := cryptoChannel.NewCipherFromJSON(
 		[]byte(msg.EncryptionJSON), rng.GetStream())
 	if err != nil {
-		return nil, errors.Errorf("failed to JSON unmarshal channel cipher "+
-			"from main thread: %+v", err)
+		return []byte{}, errors.Errorf("failed to JSON unmarshal channel "+
+			"cipher from main thread: %+v", err)
 	}
 
 	m.model, err = NewWASMEventModel(msg.Path, encryption,
@@ -67,7 +69,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) ([]byte, error) {
 	if err != nil {
 		return []byte(err.Error()), nil
 	}
-	return nil, nil
+	return []byte{}, nil
 }
 
 // messageReceivedCallback sends calls to the MessageReceivedCallback in the
@@ -145,13 +147,13 @@ func (m *manager) storeEncryptionStatus(
 	return response.EncryptionStatus, nil
 }
 
-// receiveHandler is the handler for wasmModel.Receive. Returns nil on error or
-// the JSON marshalled UUID (uint64) on success.
+// receiveHandler is the handler for wasmModel.Receive. Returns a UUID of 0 on
+// error or the JSON marshalled UUID (uint64) on success.
 func (m *manager) receiveHandler(data []byte) ([]byte, error) {
 	var msg mDm.TransferMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return zeroUUID, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -161,18 +163,18 @@ func (m *manager) receiveHandler(data []byte) ([]byte, error) {
 
 	uuidData, err := json.Marshal(uuid)
 	if err != nil {
-		return nil, errors.Errorf("failed to JSON marshal UUID : %+v", err)
+		return zeroUUID, errors.Errorf("failed to JSON marshal UUID : %+v", err)
 	}
 	return uuidData, nil
 }
 
-// receiveTextHandler is the handler for wasmModel.ReceiveText. Returns nil on
-// error or the JSON marshalled UUID (uint64) on success.
+// receiveTextHandler is the handler for wasmModel.ReceiveText. Returns a UUID
+// of 0 on error or the JSON marshalled UUID (uint64) on success.
 func (m *manager) receiveTextHandler(data []byte) ([]byte, error) {
 	var msg mDm.TransferMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return []byte{}, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -182,19 +184,19 @@ func (m *manager) receiveTextHandler(data []byte) ([]byte, error) {
 
 	uuidData, err := json.Marshal(uuid)
 	if err != nil {
-		return nil, errors.Errorf("failed to JSON marshal UUID : %+v", err)
+		return []byte{}, errors.Errorf("failed to JSON marshal UUID : %+v", err)
 	}
 
 	return uuidData, nil
 }
 
-// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns nil on
-// error or the JSON marshalled UUID (uint64) on success.
+// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns a UUID
+// of 0 on error or the JSON marshalled UUID (uint64) on success.
 func (m *manager) receiveReplyHandler(data []byte) ([]byte, error) {
 	var msg mDm.TransferMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return zeroUUID, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -204,19 +206,19 @@ func (m *manager) receiveReplyHandler(data []byte) ([]byte, error) {
 
 	uuidData, err := json.Marshal(uuid)
 	if err != nil {
-		return nil, errors.Errorf("failed to JSON marshal UUID : %+v", err)
+		return zeroUUID, errors.Errorf("failed to JSON marshal UUID : %+v", err)
 	}
 
 	return uuidData, nil
 }
 
 // receiveReactionHandler is the handler for wasmModel.ReceiveReaction. Returns
-// nil on error or the JSON marshalled UUID (uint64) on success.
+// a UUID of 0 on error or the JSON marshalled UUID (uint64) on success.
 func (m *manager) receiveReactionHandler(data []byte) ([]byte, error) {
 	var msg mDm.TransferMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
-		return nil, errors.Errorf(
+		return zeroUUID, errors.Errorf(
 			"failed to JSON unmarshal %T from main thread: %+v", msg, err)
 	}
 
@@ -226,7 +228,7 @@ func (m *manager) receiveReactionHandler(data []byte) ([]byte, error) {
 
 	uuidData, err := json.Marshal(uuid)
 	if err != nil {
-		return nil, errors.Errorf("failed to JSON marshal UUID : %+v", err)
+		return zeroUUID, errors.Errorf("failed to JSON marshal UUID : %+v", err)
 	}
 
 	return uuidData, nil
diff --git a/indexedDb/dm/main.go b/indexedDb/dm/main.go
index 71494d8f38ac8fa4fa332cff2ca6921fd01a2238..138504f4ceea0ce678fd59ab5f4fc53b320f2c1d 100644
--- a/indexedDb/dm/main.go
+++ b/indexedDb/dm/main.go
@@ -11,15 +11,19 @@ package main
 
 import (
 	"fmt"
+	jww "github.com/spf13/jwalterweatherman"
 	"gitlab.com/elixxir/xxdk-wasm/indexedDb"
 )
 
 func main() {
-	fmt.Println("Starting xxDK WebAssembly DM Database Worker.")
+	fmt.Println("[WW] Starting xxDK WebAssembly DM Database Worker.")
+	jww.SetStdoutThreshold(jww.LevelDebug)
+	jww.INFO.Print("[WW] Starting xxDK WebAssembly DM Database Worker.")
 
 	m := &manager{mh: indexedDb.NewMessageHandler("DmIndexedDbWorker")}
 	m.RegisterHandlers()
 	RegisterDatabaseNameStore(m)
 	m.mh.SignalReady()
 	<-make(chan bool)
+	fmt.Println("[WW] Closing xxDK WebAssembly Channels Database Worker.")
 }
diff --git a/indexedDb/messageHandler.go b/indexedDb/messageHandler.go
index 1e20061673119cca38a40f4a8e0e399dc4976fc6..aae293acb4ef1c163a8e23f78d52daa07c33e93f 100644
--- a/indexedDb/messageHandler.go
+++ b/indexedDb/messageHandler.go
@@ -13,7 +13,7 @@ import (
 	"encoding/json"
 	"github.com/pkg/errors"
 	jww "github.com/spf13/jwalterweatherman"
-	"gitlab.com/elixxir/xxdk-wasm/indexedDbWorker"
+	worker "gitlab.com/elixxir/xxdk-wasm/indexedDbWorker"
 	"gitlab.com/elixxir/xxdk-wasm/utils"
 	"sync"
 	"syscall/js"
@@ -30,7 +30,7 @@ type MessageHandler struct {
 
 	// handlers is a list of functions to handle messages that come from the
 	// main thread keyed on the handler tag.
-	handlers map[indexedDbWorker.Tag]HandlerFn
+	handlers map[worker.Tag]HandlerFn
 
 	// name describes the worker. It is used for debugging and logging purposes.
 	name string
@@ -42,7 +42,7 @@ type MessageHandler struct {
 func NewMessageHandler(name string) *MessageHandler {
 	mh := &MessageHandler{
 		messages: make(chan js.Value, 100),
-		handlers: make(map[indexedDbWorker.Tag]HandlerFn),
+		handlers: make(map[worker.Tag]HandlerFn),
 		name:     name,
 	}
 
@@ -55,13 +55,13 @@ func NewMessageHandler(name string) *MessageHandler {
 // ready. Once the main thread receives this, it will initiate communication.
 // Therefore, this should only be run once all listeners are ready.
 func (mh *MessageHandler) SignalReady() {
-	mh.SendResponse(indexedDbWorker.ReadyTag, indexedDbWorker.InitID, nil)
+	mh.SendResponse(worker.ReadyTag, worker.InitID, nil)
 }
 
 // SendResponse sends a reply to the main thread with the given tag and ID,
 func (mh *MessageHandler) SendResponse(
-	tag indexedDbWorker.Tag, id uint64, data []byte) {
-	msg := indexedDbWorker.WorkerMessage{
+	tag worker.Tag, id uint64, data []byte) {
+	msg := worker.WorkerMessage{
 		Tag:  tag,
 		ID:   id,
 		Data: data,
@@ -82,7 +82,7 @@ func (mh *MessageHandler) SendResponse(
 // everytime a message from the main thread is received. If the registered
 // handler returns a response, it is sent to the main thread.
 func (mh *MessageHandler) receiveMessage(data []byte) error {
-	var msg indexedDbWorker.WorkerMessage
+	var msg worker.WorkerMessage
 	err := json.Unmarshal(data, &msg)
 	if err != nil {
 		return err
@@ -101,7 +101,7 @@ func (mh *MessageHandler) receiveMessage(data []byte) error {
 	go func() {
 		response, err2 := handler(msg.Data)
 		if err2 != nil {
-			jww.FATAL.Panicf("[WW] [%s] Handler for for %q and ID %d returned "+
+			jww.ERROR.Printf("[WW] [%s] Handler for for %q and ID %d returned "+
 				"an error: %+v", mh.name, msg.Tag, msg.ID, err)
 		}
 		if response != nil {
@@ -116,7 +116,7 @@ func (mh *MessageHandler) receiveMessage(data []byte) error {
 // previous registered handler with the same tag. This function is thread safe.
 //
 // If the handler returns anything but nil, it will be returned as a response.
-func (mh *MessageHandler) RegisterHandler(tag indexedDbWorker.Tag, handler HandlerFn) {
+func (mh *MessageHandler) RegisterHandler(tag worker.Tag, handler HandlerFn) {
 	jww.DEBUG.Printf(
 		"[WW] [%s] Worker registering handler for tag %q", mh.name, tag)
 	mh.mux.Lock()
diff --git a/indexedDbWorker/worker.go b/indexedDbWorker/worker.go
index 98bcf656e1e957fa9b898ad081faff30eede9a2b..0937a6ee5cacb49c254928fbf30b2f40680a65ba 100644
--- a/indexedDbWorker/worker.go
+++ b/indexedDbWorker/worker.go
@@ -99,8 +99,9 @@ func NewWorkerHandler(aURL, name string) (*WorkerHandler, error) {
 	select {
 	case <-ready:
 	case <-time.After(workerInitialConnectionTimeout):
-		return nil, errors.Errorf("timed out after %s waiting for initial "+
-			"message from worker", workerInitialConnectionTimeout)
+		return nil, errors.Errorf("[WW] [%s] timed out after %s waiting for "+
+			"initial message from worker",
+			wh.name, workerInitialConnectionTimeout)
 	}
 
 	return wh, nil