[Bug] Multiple natives failing on .NET after B103 update #325
Closed
unknown-urge
started this conversation in
[BUG] FiveM for GTAV Enhanced
Replies: 4 comments
|
0 replies
|
One more note: The issue seems to happen on both 0.0.3 and 0.0.2 Nuget versions. |
0 replies
|
Hey! This issue has been fixed in the latest patch b123 and CitizenFX.FiveM NuGets 0.0.4-alpha. Please try again and let us know if the issue persists. |
0 replies
|
Can confirm this is fixed. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
Native.GetGroundZFor_3dCoordand its alternate-hash overloadNative.GetGroundZFor_3dCoord_2throws an unrecoverable native access violation (surfaced asSystem.Runtime.InteropServices.SEHException) when invoked from a client script's async continuation. The exception is not catchable by an ordinarytry/catcharound the call site; it propagates past all managed exception handling straight to the process's top-level unhandled-exception logger.This reproduces with both documented hash variants shipped for
CitizenFX.FiveM.Client0.0.2-alpha (0xB1EAADCB692D69CEfor the plain name and0xA93AC190for the_2overload), which rules out a simple incorrect native hash. It also reproduces after replacingTask.DelaywithCitizenFX.Base.TickScheduler.ScheduleDelayso the continuation is confirmed to resume on the main script thread, ruling out thread affinity as the sole cause.Issue type
Client
Repro rate
Always
Client build version
b103
OS
Windows
Steps to Reproduce
CitizenFX.FiveM.Client0.0.2-alpha):API.EmitClient(...)) or via any local test command.GetGroundZFor_3dCoord(or_2) is invoked.No loop, repeated triggering, or additional load is required — a single invocation is sufficient to reproduce.
Expected Behavior
The native should return
true/falseand populategroundZwith the resolved ground height, matching its documented signature and the behavior of other natives using equivalent out-parameter bindings (for example,GetGroupSize, which successfully marshals multiple out parameters through the same invocation mechanism).Actual Behavior
System.Runtime.InteropServices.SEHException (0x80004005): External component has thrown an exception.This is thrown even when the call site is wrapped in
try { ... } catch (Exception ex) { ... }. Thecatchblock is never reached, and the exception instead propagates directly to the process's top-level unhandled exception handler, consistent with a native access violation or other corrupted-state exception rather than a normal managed exception.Additional Context
All reactions