Confusing intermittent crash with the JointsService

There’s a bug with the JointsService that makes Roblox crash when utilizing the JointsService’s auto-joint surface outlining APIs:

JointsService:SetJoinAfterMoveInstance(PVInstance joinInstance)
JointsService:SetJoinAfterMoveTarget(PVInstance joinTarget)
JointsService:ShowPermissibleJoints()

This is a bug that I’ve been experiencing for several months now, but I haven’t been able to find a clear consistent way to reproduce it.

I have a vague idea of what causes the crash and I’ve mostly been able to work around it on PC. Last night however, it came back when I made a change to the mobile controls in my game, and I woke up to these developer stats:

Device filtering is certainly not something I want happening in my game, so I want to try to get to the bottom of this crash so that hopefully it can be patched.

The crash occurs in this place:

Here’s what I’ve been able to deduce about the crash:

  • It seems to have started happening around the time explicit auto-joints were phased in.
  • The crashes only seem to happen between when you place an object with the stamper tool, and another object loads in as the old placer object gets destroyed.
  • I can mostly work around it by using JointsService:ClearJoinAfterMoveJoints() at specific points between the transition I mentioned above.

I tried to brute force a repro for this bug, but had no luck. I’m hoping that any crash dumps uploaded from this place could provide a clue to what’s going on here.

7 Likes

I was able to get some crash dumps generated for this issue.
According to Roblox’s log files, the crash was caused by a Pure Call Error:

1567280542.68083,11434,6 Error: Pure Call Error
1567280542.68184,11434,6 RBXCRASH: PureCallError
1567280542.72583,1243c,6 Info: StartProcessException...
1567280559.46201,1243c,6 Info: Uploading crash analytics...
1567280559.46201,1243c,6 Info: Done uploading crash analytics
1567280559.46600,1243c,6 Info: WatcherThread Exiting.

I can provide these .dmp files privately if an engineer messages me on the DevForums.