diff --git a/server/routers/resource/createResource.ts b/server/routers/resource/createResource.ts index 742ecaf6d..1ae6ada24 100644 --- a/server/routers/resource/createResource.ts +++ b/server/routers/resource/createResource.ts @@ -415,6 +415,16 @@ async function createHttpResource( ); } + // Wildcard subdomains are not allowed for inference-mode resources + if (effectiveMode === "inference" && subdomain && subdomain.includes("*")) { + return next( + createHttpError( + HttpCode.BAD_REQUEST, + "Wildcard subdomains are not supported for inference-mode resources." + ) + ); + } + // Wildcard subdomains are a paid feature if (subdomain && subdomain.includes("*")) { const isLicensed = await isLicensedOrSubscribed( diff --git a/server/routers/resource/updateResource.ts b/server/routers/resource/updateResource.ts index 842cdfa9f..6ecc22ce7 100644 --- a/server/routers/resource/updateResource.ts +++ b/server/routers/resource/updateResource.ts @@ -531,6 +531,20 @@ async function updateHttpResource( } } + // Wildcard subdomains are not allowed for inference-mode resources + if ( + resource.mode === "inference" && + updateData.subdomain && + updateData.subdomain.includes("*") + ) { + return next( + createHttpError( + HttpCode.BAD_REQUEST, + "Wildcard subdomains are not supported for inference-mode resources." + ) + ); + } + // Wildcard subdomains are a paid feature if (updateData.subdomain && updateData.subdomain.includes("*")) { if (!isLicensed) { diff --git a/src/app/[orgId]/settings/resources/public/[niceId]/general/page.tsx b/src/app/[orgId]/settings/resources/public/[niceId]/general/page.tsx index 1107762c6..e1f087671 100644 --- a/src/app/[orgId]/settings/resources/public/[niceId]/general/page.tsx +++ b/src/app/[orgId]/settings/resources/public/[niceId]/general/page.tsx @@ -405,7 +405,10 @@ export default function GeneralForm() {