@@ -113,40 +113,32 @@ private function startWorkflow(
113113 $ workflowId = is_string ($ startTarget ['workflow_id ' ] ?? null )
114114 ? $ startTarget ['workflow_id ' ]
115115 : $ this ->workflowIdFor ($ adapter , $ idempotencyKey );
116-
117- try {
118- $ taskQueue = $ this ->workflowStartService ->resolveTaskQueue (
119- $ startTarget ['workflow_type ' ],
120- $ startTarget ['task_queue ' ] ?? null ,
121- );
122- } catch (LogicException $ exception ) {
123- return $ this ->rejected ($ request , $ adapter , 'start_workflow ' , $ idempotencyKey , 'unknown_target ' , [
124- 'message ' => $ exception ->getMessage (),
125- 'target ' => $ this ->redactedTarget ($ target ),
126- 'correlation ' => $ correlation ,
127- ]);
128- }
129-
130- $ routingBlock = $ this ->taskQueueRoutingGate ->workflowStartBlock ((string ) $ namespace , $ taskQueue );
131-
132- if ($ routingBlock !== null ) {
133- return $ this ->rejected ($ request , $ adapter , 'start_workflow ' , $ idempotencyKey , 'task_queue_draining ' , array_filter ([
134- 'message ' => sprintf (
135- 'Task queue [%s] is draining and cannot accept new workflow starts until an active worker cohort is available. ' ,
136- $ taskQueue ,
137- ),
138- 'target ' => $ this ->redactedTarget ($ target + ['workflow_id ' => $ workflowId ]),
139- 'correlation ' => $ correlation ,
140- 'workflow_id ' => $ workflowId ,
141- 'workflow_type ' => $ startTarget ['workflow_type ' ],
142- 'task_queue ' => $ taskQueue ,
143- 'routing_status ' => $ routingBlock ['routing_status ' ],
144- 'active_worker_count ' => $ routingBlock ['active_worker_count ' ],
145- 'draining_worker_count ' => $ routingBlock ['draining_worker_count ' ],
146- 'stale_worker_count ' => $ routingBlock ['stale_worker_count ' ],
147- 'draining_build_ids ' => $ routingBlock ['draining_build_ids ' ],
148- 'drain_intent ' => 'draining ' ,
149- ], static fn (mixed $ value ): bool => $ value !== null ));
116+ $ taskQueue = is_string ($ startTarget ['task_queue ' ] ?? null )
117+ ? trim ($ startTarget ['task_queue ' ])
118+ : null ;
119+
120+ if ($ taskQueue !== null && $ taskQueue !== '' ) {
121+ $ routingBlock = $ this ->taskQueueRoutingGate ->workflowStartBlock ((string ) $ namespace , $ taskQueue );
122+
123+ if ($ routingBlock !== null ) {
124+ return $ this ->rejected ($ request , $ adapter , 'start_workflow ' , $ idempotencyKey , 'task_queue_draining ' , array_filter ([
125+ 'message ' => sprintf (
126+ 'Task queue [%s] is draining and cannot accept new workflow starts until an active worker cohort is available. ' ,
127+ $ taskQueue ,
128+ ),
129+ 'target ' => $ this ->redactedTarget ($ target + ['workflow_id ' => $ workflowId ]),
130+ 'correlation ' => $ correlation ,
131+ 'workflow_id ' => $ workflowId ,
132+ 'workflow_type ' => $ startTarget ['workflow_type ' ],
133+ 'task_queue ' => $ taskQueue ,
134+ 'routing_status ' => $ routingBlock ['routing_status ' ],
135+ 'active_worker_count ' => $ routingBlock ['active_worker_count ' ],
136+ 'draining_worker_count ' => $ routingBlock ['draining_worker_count ' ],
137+ 'stale_worker_count ' => $ routingBlock ['stale_worker_count ' ],
138+ 'draining_build_ids ' => $ routingBlock ['draining_build_ids ' ],
139+ 'drain_intent ' => 'draining ' ,
140+ ], static fn (mixed $ value ): bool => $ value !== null ));
141+ }
150142 }
151143
152144 try {
@@ -168,7 +160,6 @@ private function startWorkflow(
168160 'adapter ' => $ adapter ,
169161 'action ' => 'start_workflow ' ,
170162 'idempotency_key ' => $ idempotencyKey ,
171- 'task_queue ' => $ taskQueue ,
172163 ],
173164 ),
174165 );
0 commit comments