diff --git a/src/backend/src/api/APIError.js b/src/backend/src/api/APIError.js
index 53ea4cfae..196a919f8 100644
--- a/src/backend/src/api/APIError.js
+++ b/src/backend/src/api/APIError.js
@@ -323,6 +323,10 @@ module.exports = class APIError {
status: 400,
message: ({ subdomain }) => `Subdomain ${quot(subdomain)} is not available.`,
},
+ 'subdomain_not_owned': {
+ status: 403,
+ message: ({ subdomain }) => `You must own the ${quot(subdomain)} subdomain on Puter to use it for this app.`,
+ },
// Users
'email_already_in_use': {
diff --git a/src/backend/src/om/entitystorage/AppES.js b/src/backend/src/om/entitystorage/AppES.js
index 6ccd2d603..93ce82285 100644
--- a/src/backend/src/om/entitystorage/AppES.js
+++ b/src/backend/src/om/entitystorage/AppES.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
const APIError = require('../../api/APIError');
+const config = require('../../config');
const { app_name_exists, refresh_apps_cache } = require('../../helpers');
const { AppUnderUserActorType } = require('../../services/auth/Actor');
@@ -103,6 +104,16 @@ class AppES extends BaseES {
* @returns {Promise