Cleanup
diff --git a/apidGatewayDeploy_suite_test.go b/apidGatewayDeploy_suite_test.go
index ab0ca63..d63d0f7 100644
--- a/apidGatewayDeploy_suite_test.go
+++ b/apidGatewayDeploy_suite_test.go
@@ -36,7 +36,8 @@
 
 	db, err := data.DB()
 	Expect(err).NotTo(HaveOccurred())
-	initDB(db)
+	err = initDB(db)
+	Expect(err).NotTo(HaveOccurred())
 	setDB(db)
 
 	router := apid.API().Router()
diff --git a/data.go b/data.go
index 814c71c..c9aa520 100644
--- a/data.go
+++ b/data.go
@@ -35,7 +35,7 @@
 	Exec(query string, args ...interface{}) (sql.Result, error)
 }
 
-func initDB(db apid.DB) {
+func initDB(db apid.DB) error {
 	_, err := db.Exec(`
 	CREATE TABLE IF NOT EXISTS etag (
 		value integer
@@ -63,10 +63,11 @@
 	);
 	`)
 	if err != nil {
-		log.Panicf("Unable to initialize database: %v", err)
+		return err
 	}
 
 	log.Debug("Database tables created.")
+	return nil
 }
 
 func getDB() apid.DB {
diff --git a/listener.go b/listener.go
index 7823563..655ea97 100644
--- a/listener.go
+++ b/listener.go
@@ -50,9 +50,16 @@
 		log.Panicf("Unable to access database: %v", err)
 	}
 
-	initDB(db)
+	err = initDB(db)
+	if err != nil {
+		log.Panicf("Unable to initialize database: %v", err)
+	}
 
 	tx, err := db.Begin()
+	if err != nil {
+		log.Panicf("Error starting transaction: %v", err)
+	}
+
 	defer tx.Rollback()
 	for _, table := range snapshot.Tables {
 		var err error