diff --git a/eth/backend.go b/eth/backend.go
index be2d032832e5f939e6f747cf7eb28b26d1dd2f5b..75e0e737b14d95d66b61313bd4b604c8971c9123 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -200,10 +200,13 @@ func makeExtraData(extra []byte) []byte {
 // CreateDB creates the chain database.
 func CreateDB(ctx *node.ServiceContext, config *Config, name string) (ethdb.Database, error) {
 	db, err := ctx.OpenDatabase(name, config.DatabaseCache, config.DatabaseHandles)
+	if err != nil {
+		return nil, err
+	}
 	if db, ok := db.(*ethdb.LDBDatabase); ok {
 		db.Meter("eth/db/chaindata/")
 	}
-	return db, err
+	return db, nil
 }
 
 // CreateConsensusEngine creates the required type of consensus engine instance for an Ethereum service
diff --git a/node/service.go b/node/service.go
index 5e1eb0e6454585dbb924369540978d20176af64e..55062a5004546089934eb8e04d13d85b99387dda 100644
--- a/node/service.go
+++ b/node/service.go
@@ -43,7 +43,11 @@ func (ctx *ServiceContext) OpenDatabase(name string, cache int, handles int) (et
 	if ctx.config.DataDir == "" {
 		return ethdb.NewMemDatabase()
 	}
-	return ethdb.NewLDBDatabase(ctx.config.resolvePath(name), cache, handles)
+	db, err := ethdb.NewLDBDatabase(ctx.config.resolvePath(name), cache, handles)
+	if err != nil {
+		return nil, err
+	}
+	return db, nil
 }
 
 // ResolvePath resolves a user path into the data directory if that was relative