diff --git a/apps/labrinth/.sqlx/query-015d9b9191d9fd0a4de36ea8f44a13be89f18c2099ccb80c2fa1d394f681cebc.json b/apps/labrinth/.sqlx/query-015d9b9191d9fd0a4de36ea8f44a13be89f18c2099ccb80c2fa1d394f681cebc.json
new file mode 100644
index 0000000000..9512dbe7cf
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-015d9b9191d9fd0a4de36ea8f44a13be89f18c2099ccb80c2fa1d394f681cebc.json
@@ -0,0 +1,15 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n UPDATE oauth_clients\n SET created_by = $1\n WHERE created_by = $2\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8",
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "015d9b9191d9fd0a4de36ea8f44a13be89f18c2099ccb80c2fa1d394f681cebc"
+}
diff --git a/apps/labrinth/.sqlx/query-05b65c44a55654af963329d2fcd68178411e8cfa3f3796d7741637f2c2be4850.json b/apps/labrinth/.sqlx/query-05b65c44a55654af963329d2fcd68178411e8cfa3f3796d7741637f2c2be4850.json
new file mode 100644
index 0000000000..72a16dc9a9
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-05b65c44a55654af963329d2fcd68178411e8cfa3f3796d7741637f2c2be4850.json
@@ -0,0 +1,14 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n DELETE FROM users_notifications_preferences\n WHERE user_id = $1\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "05b65c44a55654af963329d2fcd68178411e8cfa3f3796d7741637f2c2be4850"
+}
diff --git a/apps/labrinth/.sqlx/query-2829629354f77ea579d11be8671c3cec00f07f11f3d7972efd9441b263aa6c76.json b/apps/labrinth/.sqlx/query-2829629354f77ea579d11be8671c3cec00f07f11f3d7972efd9441b263aa6c76.json
new file mode 100644
index 0000000000..525b1879d6
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-2829629354f77ea579d11be8671c3cec00f07f11f3d7972efd9441b263aa6c76.json
@@ -0,0 +1,14 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n DELETE FROM moderation_locks\n WHERE moderator_id = $1\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "2829629354f77ea579d11be8671c3cec00f07f11f3d7972efd9441b263aa6c76"
+}
diff --git a/apps/labrinth/.sqlx/query-32e68c09c9dd29dd9e18e139c49ac9cb039d2883ee139b6065fc49abb0c6176e.json b/apps/labrinth/.sqlx/query-32e68c09c9dd29dd9e18e139c49ac9cb039d2883ee139b6065fc49abb0c6176e.json
new file mode 100644
index 0000000000..ca4c5dbe26
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-32e68c09c9dd29dd9e18e139c49ac9cb039d2883ee139b6065fc49abb0c6176e.json
@@ -0,0 +1,15 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n UPDATE users_compliance\n SET user_id = $1\n WHERE user_id = $2\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8",
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "32e68c09c9dd29dd9e18e139c49ac9cb039d2883ee139b6065fc49abb0c6176e"
+}
diff --git a/apps/labrinth/.sqlx/query-4e5ae05e21fa85032304a1cac45ab928d15ebda1cf342eb7d25b7fb9e2cd27ca.json b/apps/labrinth/.sqlx/query-4e5ae05e21fa85032304a1cac45ab928d15ebda1cf342eb7d25b7fb9e2cd27ca.json
new file mode 100644
index 0000000000..9c2bc1799f
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-4e5ae05e21fa85032304a1cac45ab928d15ebda1cf342eb7d25b7fb9e2cd27ca.json
@@ -0,0 +1,15 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n UPDATE users_redeemals\n SET user_id = $1\n WHERE user_id = $2\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8",
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "4e5ae05e21fa85032304a1cac45ab928d15ebda1cf342eb7d25b7fb9e2cd27ca"
+}
diff --git a/apps/labrinth/.sqlx/query-530b030fe1248d594718dce3a453baa08664677da4da57192795a9c1d86a6c88.json b/apps/labrinth/.sqlx/query-530b030fe1248d594718dce3a453baa08664677da4da57192795a9c1d86a6c88.json
new file mode 100644
index 0000000000..822b466633
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-530b030fe1248d594718dce3a453baa08664677da4da57192795a9c1d86a6c88.json
@@ -0,0 +1,14 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n DELETE FROM oauth_client_authorizations\n WHERE user_id = $1\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "530b030fe1248d594718dce3a453baa08664677da4da57192795a9c1d86a6c88"
+}
diff --git a/apps/labrinth/.sqlx/query-54bfa46679475b799f85494e1aafd093dd6023259a1e617eeb2c5491e5e5f704.json b/apps/labrinth/.sqlx/query-54bfa46679475b799f85494e1aafd093dd6023259a1e617eeb2c5491e5e5f704.json
deleted file mode 100644
index dbdd85fcea..0000000000
--- a/apps/labrinth/.sqlx/query-54bfa46679475b799f85494e1aafd093dd6023259a1e617eeb2c5491e5e5f704.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "db_name": "PostgreSQL",
- "query": "\n UPDATE payouts\n SET user_id = $1\n WHERE user_id = $2\n ",
- "describe": {
- "columns": [],
- "parameters": {
- "Left": [
- "Int8",
- "Int8"
- ]
- },
- "nullable": []
- },
- "hash": "54bfa46679475b799f85494e1aafd093dd6023259a1e617eeb2c5491e5e5f704"
-}
diff --git a/apps/labrinth/.sqlx/query-7234964dd4ea30d2ccd9742b5a454eee3a284573de7efb48e3982f1fb9f6702d.json b/apps/labrinth/.sqlx/query-7234964dd4ea30d2ccd9742b5a454eee3a284573de7efb48e3982f1fb9f6702d.json
new file mode 100644
index 0000000000..7a3fe5769d
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-7234964dd4ea30d2ccd9742b5a454eee3a284573de7efb48e3982f1fb9f6702d.json
@@ -0,0 +1,14 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n DELETE FROM shared_instance_invited_users\n WHERE invited_user_id = $1\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "7234964dd4ea30d2ccd9742b5a454eee3a284573de7efb48e3982f1fb9f6702d"
+}
diff --git a/apps/labrinth/.sqlx/query-92c00ebff25cfb0464947ea48faac417fabdb3cb3edd5ed45720598c7c12c689.json b/apps/labrinth/.sqlx/query-92c00ebff25cfb0464947ea48faac417fabdb3cb3edd5ed45720598c7c12c689.json
deleted file mode 100644
index 133a13f0d8..0000000000
--- a/apps/labrinth/.sqlx/query-92c00ebff25cfb0464947ea48faac417fabdb3cb3edd5ed45720598c7c12c689.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "db_name": "PostgreSQL",
- "query": "\n DELETE FROM payouts_values\n WHERE user_id = $1\n ",
- "describe": {
- "columns": [],
- "parameters": {
- "Left": [
- "Int8"
- ]
- },
- "nullable": []
- },
- "hash": "92c00ebff25cfb0464947ea48faac417fabdb3cb3edd5ed45720598c7c12c689"
-}
diff --git a/apps/labrinth/.sqlx/query-b090fca733f427156d50feb24a0f360fadc01ee609c3c3a9b85618c64d822e55.json b/apps/labrinth/.sqlx/query-b090fca733f427156d50feb24a0f360fadc01ee609c3c3a9b85618c64d822e55.json
new file mode 100644
index 0000000000..cbfc0e0b0e
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-b090fca733f427156d50feb24a0f360fadc01ee609c3c3a9b85618c64d822e55.json
@@ -0,0 +1,14 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n DELETE FROM shared_instance_users\n WHERE user_id = $1\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "b090fca733f427156d50feb24a0f360fadc01ee609c3c3a9b85618c64d822e55"
+}
diff --git a/apps/labrinth/.sqlx/query-e565b6a2c5e174c261125258b8eaa27613524fde10df6ec956f198367707078e.json b/apps/labrinth/.sqlx/query-e565b6a2c5e174c261125258b8eaa27613524fde10df6ec956f198367707078e.json
new file mode 100644
index 0000000000..289246d710
--- /dev/null
+++ b/apps/labrinth/.sqlx/query-e565b6a2c5e174c261125258b8eaa27613524fde10df6ec956f198367707078e.json
@@ -0,0 +1,14 @@
+{
+ "db_name": "PostgreSQL",
+ "query": "\n DELETE FROM user_limits\n WHERE user_id = $1\n ",
+ "describe": {
+ "columns": [],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": []
+ },
+ "hash": "e565b6a2c5e174c261125258b8eaa27613524fde10df6ec956f198367707078e"
+}
diff --git a/apps/labrinth/src/database/models/user_item.rs b/apps/labrinth/src/database/models/user_item.rs
index 4d53b56759..970056c46e 100644
--- a/apps/labrinth/src/database/models/user_item.rs
+++ b/apps/labrinth/src/database/models/user_item.rs
@@ -7,6 +7,7 @@ use crate::database::redis::RedisPool;
use crate::database::{PgTransaction, models};
use crate::models::billing::ChargeStatus;
use crate::models::users::Badges;
+use crate::util::error::Context;
use ariadne::ids::base62_impl::{parse_base62, to_base62};
use chrono::{DateTime, Utc};
use dashmap::DashMap;
@@ -504,12 +505,15 @@ impl DBUser {
id: DBUserId,
transaction: &mut PgTransaction<'_>,
redis: &RedisPool,
- ) -> Result