diff --git a/packages/app/studio/src/service/StudioService.ts b/packages/app/studio/src/service/StudioService.ts index c646cb1e..5f432b01 100644 --- a/packages/app/studio/src/service/StudioService.ts +++ b/packages/app/studio/src/service/StudioService.ts @@ -396,7 +396,10 @@ export class StudioService implements ProjectEnv { const previousScreen = this.#activeCodeEditor.map(state => state.previousScreen).unwrapOrNull() this.#activeCodeEditor.clear() if (this.layout.screen.getValue() === "code") { - this.layout.screen.setValue(previousScreen ?? "default") + // Defer the screen switch to avoid cascading UI updates during synchronous + // box deletion. Switching the screen triggers DevicePanel re-evaluation which + // clears mounts before remaining pointerHub onRemoved events have finished. + queueMicrotask(() => this.layout.screen.setValue(previousScreen ?? "default")) } }