11import { type WorkloadType } from "@trigger.dev/database" ;
22import { type Project } from "~/models/project.server" ;
33import { type User } from "~/models/user.server" ;
4- import { FEATURE_FLAG } from "~/v3/featureFlags" ;
5- import { makeFlag } from "~/v3/featureFlags.server" ;
6- import {
7- defaultVisibilityFilter ,
8- resolveComputeAccess ,
9- resolveEffectiveDefaultWorkerGroupId ,
10- } from "~/v3/regionAccess.server" ;
4+ import { defaultVisibilityFilter , resolveComputeAccess } from "~/v3/regionAccess.server" ;
5+ import { WorkerGroupService } from "~/v3/services/worker/workerGroupService.server" ;
116import { BasePresenter } from "./basePresenter.server" ;
127import { getCurrentPlan } from "~/services/platform.v3.server" ;
138
@@ -40,7 +35,6 @@ export class RegionsPresenter extends BasePresenter {
4035 select : {
4136 id : true ,
4237 organizationId : true ,
43- defaultWorkerGroupId : true ,
4438 allowedWorkerQueues : true ,
4539 organization : {
4640 select : { featureFlags : true } ,
@@ -62,28 +56,21 @@ export class RegionsPresenter extends BasePresenter {
6256 throw new Error ( "Project not found" ) ;
6357 }
6458
65- const getFlag = makeFlag ( this . _replica ) ;
66- const defaultWorkerInstanceGroupId = await getFlag ( {
67- key : FEATURE_FLAG . defaultWorkerInstanceGroupId ,
68- } ) ;
69-
70- if ( ! defaultWorkerInstanceGroupId ) {
71- throw new Error ( "Default worker instance group not found" ) ;
72- }
73-
7459 const environment = environmentId
7560 ? await this . _replica . runtimeEnvironment . findFirst ( {
7661 select : { defaultWorkerGroupId : true } ,
7762 where : { id : environmentId , projectId : project . id , archivedAt : null } ,
7863 } )
7964 : null ;
8065
81- // env default -> project default -> global default
82- const effectiveDefaultId = resolveEffectiveDefaultWorkerGroupId ( {
66+ // Resolve via the same path the trigger uses (env -> project -> global, each
67+ // existence-checked) so the UI default always matches where runs route and can
68+ // never point at a deleted region.
69+ const defaultWorkerGroup = await new WorkerGroupService ( ) . getDefaultWorkerGroupForProject ( {
70+ projectId : project . id ,
8371 environmentDefaultWorkerGroupId : environment ?. defaultWorkerGroupId ,
84- projectDefaultWorkerGroupId : project . defaultWorkerGroupId ,
85- globalDefaultWorkerGroupId : defaultWorkerInstanceGroupId ,
8672 } ) ;
73+ const effectiveDefaultId = defaultWorkerGroup ?. id ;
8774
8875 const hasComputeAccess = await resolveComputeAccess (
8976 this . _replica ,
@@ -128,38 +115,21 @@ export class RegionsPresenter extends BasePresenter {
128115 workloadType : region . workloadType ,
129116 } ) ) ;
130117
131- // The effective default may not be in the visible list (e.g. a hidden
132- // region set as the env/project default) — fetch and include it.
133- if ( effectiveDefaultId && ! regions . some ( ( region ) => region . id === effectiveDefaultId ) ) {
134- const defaultWorkerGroup = await this . _replica . workerInstanceGroup . findFirst ( {
135- select : {
136- id : true ,
137- name : true ,
138- masterQueue : true ,
139- description : true ,
140- cloudProvider : true ,
141- location : true ,
142- staticIPs : true ,
143- hidden : true ,
144- workloadType : true ,
145- } ,
146- where : { id : effectiveDefaultId } ,
118+ // The default may not be in the visible list (e.g. a hidden region set as the
119+ // env/project default) — include the already-resolved group so it still shows.
120+ if ( defaultWorkerGroup && ! regions . some ( ( region ) => region . id === defaultWorkerGroup . id ) ) {
121+ regions . push ( {
122+ id : defaultWorkerGroup . id ,
123+ name : defaultWorkerGroup . name ,
124+ masterQueue : defaultWorkerGroup . masterQueue ,
125+ description : defaultWorkerGroup . description ?? undefined ,
126+ cloudProvider : defaultWorkerGroup . cloudProvider ?? undefined ,
127+ location : defaultWorkerGroup . location ?? undefined ,
128+ staticIPs : defaultWorkerGroup . staticIPs ?? undefined ,
129+ isDefault : true ,
130+ isHidden : defaultWorkerGroup . hidden ,
131+ workloadType : defaultWorkerGroup . workloadType ,
147132 } ) ;
148-
149- if ( defaultWorkerGroup ) {
150- regions . push ( {
151- id : defaultWorkerGroup . id ,
152- name : defaultWorkerGroup . name ,
153- masterQueue : defaultWorkerGroup . masterQueue ,
154- description : defaultWorkerGroup . description ?? undefined ,
155- cloudProvider : defaultWorkerGroup . cloudProvider ?? undefined ,
156- location : defaultWorkerGroup . location ?? undefined ,
157- staticIPs : defaultWorkerGroup . staticIPs ?? undefined ,
158- isDefault : true ,
159- isHidden : defaultWorkerGroup . hidden ,
160- workloadType : defaultWorkerGroup . workloadType ,
161- } ) ;
162- }
163133 }
164134
165135 // Default first
0 commit comments