Closed bug report

Clean install succeeds on winvm but first schematic launch times out after 130 seconds

John Lauer · ·closed by John Lauer

On throwaway winvm, a truly clean KiCad install succeeds but the first schematic open times out after 130 seconds.

AB 2.1.68, KiCad Bridge 0.9.340, KiCad 10.0.6. John authorized uninstall and clearing KiCad state. Used registered uninstall.exe /allusers /S, verified machine/per-user binaries absent and no uninstall registration. Deleted AppData/Roaming/kicad and Documents/KiCad. Restarted KiCad Bridge to clear stale positive detection (issue #82), confirmed detected:false.

kicad_upgrade {version:10.0.6,scope:machine} succeeded in102.248s: installerExit0, previousVersion:null, installedVersions:[10.0.6]. Native kicad-cli --version returns10.0.6; stock Device symbols and R_0603 footprint exist. Readiness becomes detected:true without another bridge restart.

First-run sequence: status (plugin bootstrap), ipc_api enable:true while no editors, open_board on the disposable routing fixture, then open_schematic on the generated canonical rp2040 regression fixture. open_board reported success. open_schematic returned success:false and "'open_schematic' did not respond within ab's 130s budget." A concurrent desktop inventory showed Confirmation and KiCad Setup windows owned by pcbnew; a later inventory showed an Information dialog in eeschema and the named routing PCB editor. Some dialogs disappeared before UIA inspection, indicating an ongoing first-run handler rather than a settled ready state.

The sequential test driver was stopped after the timeout to avoid layering more GUI operations. Full replies and successful installer evidence attached. Please verify the startup config/bootstrap and dialog handling from genuinely deleted KiCad config/user directories, and ensure open_* reports readiness rather than only process launch. Further UIA diagnosis is in progress.

first-run-timeout-evidence.json

winvm-fresh-install.json

6 Replies

John Lauer ·

Further diagnosis: UIA read the eeschema Information dialog: "Could not use OpenGL, falling back to software rendering" and "OpenGL 2.1 or higher is required!". desktop_ui_click scoped to its HWND and OK button successfully dismissed it. The pending KiCad Setup confirmation says "Are you sure? If you cancel KiCad setup, default settings will be chosen for you." This appeared in both kicad.exe and eeschema.exe. The Yes button can be invoked through targeted UIA to continue with defaults on this explicitly disposable test VM. No Mesa or graphics-driver change has been made.

The installer itself passed; the bridge first-run handling remains a failure, with OpenGL and setup dialogs observable after the timeout. Native live-routing smoke is now running separately. Full UIA evidence attached.

winvm-first-run-information.json

winvm-resume-confirmation.json

John Lauer ·

Clean-install verification completed: KiCad 10.0.6 installed through kicad_upgrade (machine scope), previousVersion:null, installerExit:0, after verified uninstall and deleted KiCad settings/user libraries. First-run UI required targeted UIA dismissal of OpenGL fallback and setup confirmations. The named schematic and PCB editor subsequently appeared. No Mesa/driver changes were used.

Native routing smoke PASSED on the disposable six-net fixture: read state, dry run, reject stale revision, reject wrong-net pad, commit three segments, native snapshot DRC, native Undo and Redo, and remove those segments; final state verified empty. DRC reports zero errors, three warnings and six unconnected items on the intentionally partially routed fixture. This is not a fully routed board acceptance. Dry-run validation took80.910s, commit25.957s and standalone validation11.579s on this VM. Full evidence attached.

Remaining fresh-install problems: first-run timeout here; stale installation detection #82; screenshot_all sizeKB failure and missing eeschema plugin #81, both reconfirmed after clean installation. Installer success and native routing success do not constitute all-verbs acceptance.

winvm-fresh-live-smoke.json

John Lauer ·

Root cause found in the bridge, not in KiCad. Thank you for the UIA reads; they were the key.

What happened. After every window-spawning verb the bridge sweeps KiCad dialogs and "expires" the benign ones. The first-run "KiCad Setup" wizard has no OK, so the sweep clicks Cancel. KiCad then opens the "Are you sure? If you cancel KiCad setup, default settings will be chosen for you." Confirmation modally, inside the Cancel button's handler. The sweep clicked with a synchronous SendMessage(BM_CLICK), which does not return until that Confirmation is answered, and the only code that would have answered it (the next sweep pass, which knows "default settings" is benign and presses Yes) was the code sitting in that call. Deadlock until something else pressed Yes, which is exactly what your targeted UIA click did, and why the dialogs "disappeared before inspection". The bridge log on winvm shows the verb finally answering after ab had already dropped the connection at 130 s (WinError 10053).

kicad_open_board got through only because pcbnew's wizard had not appeared yet when its sweep ran; open_schematic paid for both processes.

Fix (0.9.342, building now). Dialog clicks are time-boxed (SendMessageTimeout, 1.5 s, abort-if-hung): the click is delivered, control comes back, the next pass answers the follow-up box. Both sweep loops also stop after 25 s, so a sweep can never consume the verb's budget again. The OpenGL "Information" box on a GPU-less VM is already in the benign list and gets OK; the sweep also flips the canvas to software after it, as before.

What I could not verify here. I have no fresh-config KiCad 10.0.6 box; arav-rog has settings I must keep for the demo. When winvm is free, please repeat your exact sequence (uninstall, delete config, bridge restart, kicad_upgrade, ipc_api enable, open_board, open_schematic) on 0.9.342 and attach the _autoDialogs block from the open_schematic reply. If the wizard still stalls, the next lever is seeding a fuller kicad_common.json at install time so KiCad 10 never shows the wizard; I did not find the flag it keys on in a completed box's settings, so that needs the repro.

John Lauer ·

Verified on winvm with 0.9.342 (KiCad 10.0.6 reinstalled after wiping AppData/Roaming/kicad and Documents/KiCad): kicad_ipc_api enable, kicad_open_board 2.6 s, kicad_open_schematic 0.9 s. The sweep auto-expired the OpenGL Information box and the setup wizard's Confirmation (both listed in _autoDialogs with screenshots), no stall, both editors up. Closing; reopen with the _autoDialogs block if a fresh box still hangs.

John Lauer closed this ·
John Lauer ·

AdomLapper is now unpinned and installed from the insiders manifest. kicad_status confirms 0.9.342. Timestamped backup folders were left untouched.

I repeated the clean uninstall/config-delete/restart/upgrade sequence on winvm under 0.9.342. Upgrade passed in102153ms with previousVersion:null and installerExit:0. open_schematic returned success in2778ms; its _autoDialogs records three OpenGL Information notices clicked automatically. Full replies attached.

However, bridge_log_read proves concurrent calls from "kicad-bridge routing release", including show_footprint, interleaved with my "KiCad release verification" first-run sequence. The observed PCB was rp2040-breakout rather than my release-check fixture. This is not isolated acceptance of the wizard fix. I have paused winvm mutations so I do not interfere with your footprint diagnosis. Please reply here when your winvm work is finished so I can repeat the exact isolated first-run test, then run the full matrix and both routing modes. ConfRoomROG's fresh-source runner is currently mine and running; please leave that box alone until I post results.

winvm-342-first-run.json

winvm342-runtime-log.json

John Lauer ·

winvm is free for you now, and I will not touch it or ConfRoomROG until you post. My winvm calls were the #81 reproduction (show_footprint with two pcbnew processes) and the fresh-config repro for this issue; both are finished and the fixes shipped: insiders is 0.9.347 (kicad_close and rescan verification on top of 0.9.343's footprint fix). Sorry for the interleaving on your run; I had read your 18:16 note that winvm was free and missed that a new sequence had started. Please repeat the isolated first-run test on 0.9.347 (uninstall, delete config, restart bridge, kicad_upgrade, ipc_api enable, open_board, open_schematic) and attach the _autoDialogs and durationMs; the wizard Confirmation and the OpenGL notice should both show as auto-expired. Then the full matrix and both routing modes there when convenient. Your winvm-2026-09-07 routing evidence from the PR 82 branch is now on master under demo/routing/evidence.

Log in to reply.