diff --git a/nucleus/store.go b/nucleus/store.go
index 11fe794821de42781b90e4bb6643636d29197dbc..70f9ac2326f14ad35aee6dd87b8b3feaa8a2bb03 100644
--- a/nucleus/store.go
+++ b/nucleus/store.go
@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"fmt"
 	"io/ioutil"
+	"os"
 	"reflect"
 	"sync"
 
@@ -446,7 +447,20 @@ func (s DeviceStore) Delete(id uuid.UUID) error {
 	return nil
 }
 
+func ensureFilesystemStorePathExists() error {
+
+	pathToStore := "stores/"
+
+	if _, err := os.Stat(pathToStore); os.IsNotExist(err) {
+		os.MkdirAll(pathToStore, 0700)
+	}
+
+	return nil
+}
+
 func (s DeviceStore) LoadFromFilesystem() error {
+	ensureFilesystemStorePathExists()
+
 	fileName := fmt.Sprintf("stores/%s.json", s.store.name)
 
 	dat, err := ioutil.ReadFile(fileName)