# ReverseEngineering create/recompute recovery Batch: `412be33d86b5291b70f03ddd` The reported first failure is ambiguous: the create facade caught exceptions from both `fc_web_dispatch_json` and `JSON.parse` and replaced either with `Invalid native JSON`. The facade now reports native execution exceptions separately, preserving their stack/message, and includes a bounded response prefix for actual JSON parse failures. This changes error reporting only. The existing native dispatcher in `freecad-source/src/WebAssembly/FreeCADCoreProbe/ReverseEngineeringRuntimeProbe.cpp` continues to call `Reen.approxCurve(points).toShape()`, retain named FreeCAD documents and objects, and use transactions and native recompute. No geometry or success results were substituted. The next outer-pipeline diagnostic exposed a native exception (`20711592`) on the first create request. Local desktop source `freecad-source/src/Mod/ReverseEngineering/App/AppReverseEngineering.cpp`, `Module::getPoints`, constructs a `Py::Tuple` for each sample. The JSON bridge creates Python lists, which were passed directly to that binding. The create handler now converts each validated XYZ list to a tuple before calling the same native `approxCurve` implementation, matching the existing native examples. Coordinates, fitting defaults, geometry validation and document transactions are preserved. Remaining boundary: this source-level input-contract repair needs an incremental build of `FreeCADWebReverseEngineeringRuntimeProbe` and real WASM verification by the outer pipeline. Reuse `tools/reverseengineering-business-cases.mjs` for the first four-point create, updates, scale/translation invariants, document retention and invalid-input recovery. No acceptance or failure-closure status has been written. Browser document synchronization and surface fitting remain outside this contract.