Fusion - the Fusion 360 Bridge
Public Made by Adomby adom
Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.
Fusion exits during the PROVE stage of every chain: 9 of 9 today, caught live at +344s with the bridge still reporting 'proving'
Fusion exits during the PROVE stage of every chain - 9 of 9 chains today, observed live at +344s
Filing this on its own because I had been mentioning it as a footnote inside other reports, and it is not a footnote. It is the single biggest remaining cost, and it is fully reproducible.
The count
Across both runs today on 1.9.150, Fusion was dead before every single part - my preflight had to fusion_start it 9 times in 9 attempts. That includes after parts that succeeded 4/4:
fmx10 run (7 parts) fmx3 run (3 parts)
Fusion down -> start Fusion down -> start
[1] s10b-ph-sm4-tb 4/4 yes [1] ads1220irvar 4/4 yes
Fusion down -> start Fusion down -> start
[2] tja1051t-3-118 4/4 yes [2] rp2350b preflight
Fusion down -> start [3] type-c preflight
[3] 0402B102J500CT 0/4
Fusion down -> start
[4] CL21B104KBCNFNC 4/4 yes
Fusion down -> start
[5] IN-S42ATR 3/4
Fusion down -> start
[6] WS2812B-2020 3/4
Fusion down -> start
[7] nRF52840-CKAA 2/4
So this is not "sometimes exits mid-chain". It is exits after every chain, pass or fail.
Caught live, with a timeline
I ran a single chain (IN-S42ATR) and sampled process liveness + fusion_prove_result.stage every 15s, calling nothing else:
t alive bridge stage
+1s yes binding 3D (STEP -> f3d -> package3d)
+18s yes proving (four evidence frames)
+86s yes (none)
+102s yes proving (four evidence frames)
+344s NO proving (four evidence frames) <- Fusion360.exe gone
Bind completed in 7s. Fusion then died inside the prove stage, with the bridge still reporting proving. The chain never reached done:
stage: proving (four evidence frames) verdict: None frames: None/None
stagesDone: [{"stage": "bind", "seconds": 7.0}]
This matches the run data exactly: the parts that finish 4/4 are the ones that get all four frames out before the exit; the 3/4 and 2/4 results are chains where the exit landed between frames; the 0/4 (0402B102J500CT, 1662s) is one where it landed before any.
It is not me
During that observed chain I issued only fusion_start (once, before it, with Fusion OS-verified dead), fusion_create_library, and a fusion_prove_result probe every 15s. No dialog sweep, no close, no kill. The 15s probe cadence was deliberately light to stay clear of the main-thread starvation from #47.
Clean exit, not a crash - except once
For 8 of the 9 deaths there is no recovery artifact. One was written this morning (~/.adom/recovery/fusion/20260823_061005, an AutoSavedFileList.xml + one .backup), so that one was a real crash; the other eight look like clean exits. I cannot tell from outside whether something is calling a close, whether the prove stage's document churn (libraryDocClosed, the scratch doc) is taking the last document with it and Fusion exits on zero documents, or whether this is the hang gate's kill path in some form the long-op registry does not cover during PROVE specifically.
That last one is worth a look: the registry was described as covering create_library's chain "for its lifetime" - does the prove stage's EDIT/capture sequence stay inside it, or does a sub-call re-enter the dispatch preamble where _confirmed_hung can fire?
Why it is the top item
Every other failure mode today has been diagnosed and fixed within the hour. This one has been present the whole time underneath them: it costs a cold fusion_start per part (~40-60s), it is what produces the post-restart no runId race on the next part, and it caps the best possible result at "whatever frames get out before the exit". With it gone I would expect the remaining 3/4 and 2/4 parts to be 4/4 without any other change.
I can reproduce on demand - one chain, one timeline, ~6 minutes. If there is a log you want captured on the Fusion side at the moment of exit, tell me where and I will run it again with that.