diff --git a/CHANGELOG.md b/CHANGELOG.md
index c1ac80867f47648ad095ee809bdc9dc5e7a7d17e..e966a768a56fc70c63493984235124859014daf7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 ### Changed
 
 * Deprecated support for restricting uploads to certain mime types, due to inability to make it work correctly with encrypted media.
+* Removed deprecated `storagePaths` config option. Please use datastores.
 
 ### Fixed
 
diff --git a/common/config/conf_min_shared.go b/common/config/conf_min_shared.go
index 8531219f6ec34ce63900695e4953fb838e08b079..8c8a79cfa61f6b917e83d1d8472680e4ca1a8bd0 100644
--- a/common/config/conf_min_shared.go
+++ b/common/config/conf_min_shared.go
@@ -23,7 +23,6 @@ func NewDefaultMinimumRepoConfig() MinimumRepoConfig {
 			MaxSizeBytes:         104857600, // 100mb
 			MinSizeBytes:         100,
 			ReportedMaxSizeBytes: 0,
-			StoragePaths:         []string{},
 			AllowedTypes:         []string{"*/*"},
 		},
 		Identicons: IdenticonsConfig{
diff --git a/common/config/models_domain.go b/common/config/models_domain.go
index bf8ad4b66bf0eef5f52603009129c5bf822d4243..e677ef46790110a8603a8804f7aba4ac36281d2f 100644
--- a/common/config/models_domain.go
+++ b/common/config/models_domain.go
@@ -7,7 +7,6 @@ type ArchivingConfig struct {
 }
 
 type UploadsConfig struct {
-	StoragePaths         []string            `yaml:"storagePaths,flow"` // deprecated
 	MaxSizeBytes         int64               `yaml:"maxBytes"`
 	MinSizeBytes         int64               `yaml:"minBytes"`
 	AllowedTypes         []string            `yaml:"allowedTypes,flow"`
diff --git a/common/runtime/init.go b/common/runtime/init.go
index ea07c90f21053bd488e3a8e0ff12e1c63602c66e..fdb6bcbd2975d17433b1c2b68ce3996fd0f152a4 100644
--- a/common/runtime/init.go
+++ b/common/runtime/init.go
@@ -4,7 +4,6 @@ import (
 	"fmt"
 
 	"github.com/sirupsen/logrus"
-	"github.com/turt2live/matrix-media-repo/common"
 	"github.com/turt2live/matrix-media-repo/common/config"
 	"github.com/turt2live/matrix-media-repo/common/rcontext"
 	"github.com/turt2live/matrix-media-repo/common/version"
@@ -31,25 +30,6 @@ func LoadDatabase() {
 }
 
 func LoadDatastores() {
-	if len(config.Get().Uploads.StoragePaths) > 0 {
-		logrus.Warn("storagePaths usage is deprecated - please use datastores instead")
-		for _, p := range config.Get().Uploads.StoragePaths {
-			ctx := rcontext.Initial().LogWithFields(logrus.Fields{"path": p})
-			ds, err := storage.GetOrCreateDatastoreOfType(ctx, "file", p)
-			if err != nil {
-				logrus.Fatal(err)
-			}
-
-			fakeConfig := config.DatastoreConfig{
-				Type:       "file",
-				Enabled:    true,
-				MediaKinds: common.AllKinds,
-				Options:    map[string]string{"path": ds.Uri},
-			}
-			config.Get().DataStores = append(config.Get().DataStores, fakeConfig)
-		}
-	}
-
 	mediaStore := storage.GetDatabase().GetMediaStore(rcontext.Initial())
 
 	logrus.Info("Initializing datastores...")
@@ -97,8 +77,4 @@ func LoadDatastores() {
 			}
 		}
 	}
-
-	if len(config.Get().Uploads.StoragePaths) > 0 {
-		logrus.Warn("You are using `storagePaths` in your configuration - in a future update, this will be removed. Please use datastores instead (see sample config).")
-	}
 }
diff --git a/config.sample.yaml b/config.sample.yaml
index 2ba586996353eee2c28cdf92ad70f7dbb1931d03..dce572ec276b5279229a426bf0b90feb377f4ac6 100644
--- a/config.sample.yaml
+++ b/config.sample.yaml
@@ -208,13 +208,6 @@ uploads:
   # Set this to -1 to indicate that there is no limit. Zero will force the use of maxBytes.
   #reportedMaxBytes: 104857600
 
-  # This is intended for larger deployments where media should be distributed among other
-  # directories, drives, servers, etc. For smaller deployments, a single entry in this list
-  # is recommended.
-  # DEPRECATED: Use datastores instead.
-  #storagePaths:
-  #  - /var/matrix/media
-
   # An optional list of file types that are allowed to be uploaded. If */* or nothing is
   # supplied here, then all file types are allowed. Asterisks (*) are wildcards and can be
   # placed anywhere to match everything (eg: "image/*" matches all images). This will also