@@ -220,6 +220,27 @@ class ManagedSupervisor {
220220
221221 const { checkpoint, ...rest } = message ;
222222
223+ // Register trace context early so snapshot spans work for all paths
224+ // (cold create, restore, warm start). Re-registration on restore is safe
225+ // since dequeue always provides fresh context.
226+ if ( this . isComputeMode && env . COMPUTE_TRACE_SPANS_ENABLED ) {
227+ const traceparent =
228+ message . run . traceContext &&
229+ "traceparent" in message . run . traceContext &&
230+ typeof message . run . traceContext . traceparent === "string"
231+ ? message . run . traceContext . traceparent
232+ : undefined ;
233+
234+ if ( traceparent ) {
235+ this . workloadServer . registerRunTraceContext ( message . run . friendlyId , {
236+ traceparent,
237+ envId : message . environment . id ,
238+ orgId : message . organization . id ,
239+ projectId : message . project . id ,
240+ } ) ;
241+ }
242+ }
243+
223244 if ( checkpoint ) {
224245 this . logger . debug ( "Restoring run" , { runId : message . run . id } ) ;
225246
@@ -293,24 +314,6 @@ class ManagedSupervisor {
293314 return ;
294315 }
295316
296- if ( this . isComputeMode && env . COMPUTE_TRACE_SPANS_ENABLED ) {
297- const traceparent =
298- message . run . traceContext &&
299- "traceparent" in message . run . traceContext &&
300- typeof message . run . traceContext . traceparent === "string"
301- ? message . run . traceContext . traceparent
302- : undefined ;
303-
304- if ( traceparent ) {
305- this . workloadServer . registerRunTraceContext ( message . run . friendlyId , {
306- traceparent,
307- envId : message . environment . id ,
308- orgId : message . organization . id ,
309- projectId : message . project . id ,
310- } ) ;
311- }
312- }
313-
314317 try {
315318 if ( ! message . deployment . friendlyId ) {
316319 // mostly a type guard, deployments always exists for deployed environments
0 commit comments