[GH-ISSUE #2067] [Game Support]: Arknights: Endfield GPU-related thread lock corruption causes crash #1382

Closed
opened 2026-03-03 19:06:34 +03:00 by kerem · 7 comments
Owner

Originally created by @Ppokotan on GitHub (Jan 23, 2026).
Original GitHub issue: https://github.com/PlayCover/PlayCover/issues/2067

https://apps.apple.com/us/app/arknights-endfield/id6752642477

Current issues

  • Game fails to install
  • Game fails to open
  • Game crashes randomly during gameplay
  • Game does not work with keymapping
  • Game experiences graphical issues or broken UI
  • Game fails to connect to servers or complete download

More details

Reproduction:
No specific actions are needed. The game process crashes approximately 64 seconds after launching. This occurs consistently regardless of any settings changes. Prior to the crash, everything functions normally, including proper audio playback and no visible graphical anomalies.

Main Issues:

  • Core Error:
    text

    BUG IN CLIENT OF LIBPLATFORM: os_unfair_lock is corrupt
    Exception Type: EXC_BREAKPOINT (SIGKILL)

    This indicates that a mutex lock (os_unfair_lock) has been corrupted, which is a serious multi-threading synchronization issue.

  • Crash Thread: Thread 31 – UnityGfxDeviceWorker

    • This is Unity’s graphics device worker thread.
    • Crashes within AGXMetalG16G_B0 (Apple GPU driver).
    • Specifically, an issue arises during the creation of a render command encoder.
  • Application Environment:

    • iOS app running on macOS via PlayCover.
    • macOS 26.3 (relatively recent version).
    • M‑series ARM Mac (Mac16,12).
    • Application built with the Unity engine.

Possible Causes:

  • GPU Driver Compatibility Issues:

    • Compatibility problems between Unity’s graphics thread and macOS Metal GPU drivers.
    • The AGXMetalG16G_B0 driver encounters lock corruption while processing render commands.
  • Multi‑threading Synchronization Issues:

    • Conflict between Unity’s multi‑threaded rendering and macOS threading model.
    • Resource contention leading to corrupted lock states.
  • PlayCover Compatibility Issues:

    • Potential compatibility gaps when running iOS apps on macOS via PlayCover.
    • Possible issues within the graphics API translation layer.

Endfield-2026-01-23-225044.txt

Crash log


What version of PlayCover are you using?

3.1.0

What version of macOS are you using?

Other (please specify)

Issue Language

  • Yes my issue is written in English
Originally created by @Ppokotan on GitHub (Jan 23, 2026). Original GitHub issue: https://github.com/PlayCover/PlayCover/issues/2067 ### App Store link https://apps.apple.com/us/app/arknights-endfield/id6752642477 ### Current issues - [ ] Game fails to install - [ ] Game fails to open - [x] Game crashes randomly during gameplay - [ ] Game does not work with keymapping - [ ] Game experiences graphical issues or broken UI - [ ] Game fails to connect to servers or complete download ### More details Reproduction: No specific actions are needed. The game process crashes approximately 64 seconds after launching. This occurs consistently regardless of any settings changes. Prior to the crash, everything functions normally, including proper audio playback and no visible graphical anomalies. Main Issues: - Core Error: text BUG IN CLIENT OF LIBPLATFORM: os_unfair_lock is corrupt Exception Type: EXC_BREAKPOINT (SIGKILL) This indicates that a mutex lock (os_unfair_lock) has been corrupted, which is a serious multi-threading synchronization issue. - Crash Thread: Thread 31 – UnityGfxDeviceWorker - This is Unity’s graphics device worker thread. - Crashes within AGXMetalG16G_B0 (Apple GPU driver). - Specifically, an issue arises during the creation of a render command encoder. - Application Environment: - iOS app running on macOS via PlayCover. - macOS 26.3 (relatively recent version). - M‑series ARM Mac (Mac16,12). - Application built with the Unity engine. Possible Causes: - GPU Driver Compatibility Issues: - Compatibility problems between Unity’s graphics thread and macOS Metal GPU drivers. - The AGXMetalG16G_B0 driver encounters lock corruption while processing render commands. - Multi‑threading Synchronization Issues: - Conflict between Unity’s multi‑threaded rendering and macOS threading model. - Resource contention leading to corrupted lock states. - PlayCover Compatibility Issues: - Potential compatibility gaps when running iOS apps on macOS via PlayCover. - Possible issues within the graphics API translation layer. [Endfield-2026-01-23-225044.txt](https://github.com/user-attachments/files/24823570/Endfield-2026-01-23-225044.txt) ### Crash log ```shell ``` ### What version of PlayCover are you using? 3.1.0 ### What version of macOS are you using? Other (please specify) ### Issue Language - [x] Yes my issue is written in English
kerem 2026-03-03 19:06:34 +03:00
Author
Owner

@Ppokotan commented on GitHub (Jan 23, 2026):

Please click Endfield-2026-01-23-225044.txt to get the crash log.

<!-- gh-comment-id:3790671733 --> @Ppokotan commented on GitHub (Jan 23, 2026): Please click [Endfield-2026-01-23-225044.txt](https://github.com/user-attachments/files/24823570/Endfield-2026-01-23-225044.txt) to get the crash log.
Author
Owner

@neworld10 commented on GitHub (Jan 23, 2026):

This might not be a graphics driver issue, as in my case, the same os_unfair_lock recursion error occurred in a CrashSight-related thread.

Endfield [35600].rtf

<!-- gh-comment-id:3791999940 --> @neworld10 commented on GitHub (Jan 23, 2026): This might not be a graphics driver issue, as in my case, the same os_unfair_lock recursion error occurred in a CrashSight-related thread. [Endfield \[35600\].rtf](https://github.com/user-attachments/files/24828159/Endfield.35600.rtf)
Author
Owner

@neworld10 commented on GitHub (Jan 24, 2026):

this issue has been fixed. seems HyperGryph did.
solved At UTC 260123-2000, approximately

<!-- gh-comment-id:3793980013 --> @neworld10 commented on GitHub (Jan 24, 2026): this issue has been fixed. seems HyperGryph did. solved At UTC 260123-2000, approximately
Author
Owner

@TNXG commented on GitHub (Jan 24, 2026):

this issue has been fixed. seems HyperGryph did. solved At UTC 260123-2000, approximately

Has the international version already resolved this issue? The Chinese version still encounters it.
Version: "CN_IOS_REL_1.0.13_C5157154_E5135590".
The issue encountered is also: "BUG IN CLIENT OF LIBPLATFORM: os_unfair_lock is corrupt".

<!-- gh-comment-id:3794635063 --> @TNXG commented on GitHub (Jan 24, 2026): > this issue has been fixed. seems HyperGryph did. solved At UTC 260123-2000, approximately Has the international version already resolved this issue? The Chinese version still encounters it. Version: "CN_IOS_REL_1.0.13_C5157154_E5135590". The issue encountered is also: "BUG IN CLIENT OF LIBPLATFORM: os_unfair_lock is corrupt".
Author
Owner

@TNXG commented on GitHub (Jan 25, 2026):

this issue has been fixed. seems HyperGryph did. solved At UTC 260123-2000, approximately

Has the international version already resolved this issue? The Chinese version still encounters it. Version: "CN_IOS_REL_1.0.13_C5157154_E5135590". The issue encountered is also: "BUG IN CLIENT OF LIBPLATFORM: os_unfair_lock is corrupt".

Based on the issue discussion, the Global build may have already fixed this problem, but in the CN build the issue still persists. According to community discussions, it may be related to the ACE anti-cheat system.

(Though this is just a guess :D

<!-- gh-comment-id:3796317365 --> @TNXG commented on GitHub (Jan 25, 2026): > > this issue has been fixed. seems HyperGryph did. solved At UTC 260123-2000, approximately > > Has the international version already resolved this issue? The Chinese version still encounters it. Version: "CN_IOS_REL_1.0.13_C5157154_E5135590". The issue encountered is also: "BUG IN CLIENT OF LIBPLATFORM: os_unfair_lock is corrupt". Based on the issue discussion, the Global build may have already fixed this problem, but in the CN build the issue still persists. According to community discussions, it may be related to the ACE anti-cheat system. (Though this is just a guess :D
Author
Owner

@Thage commented on GitHub (Jan 26, 2026):

1I had Claude Code run wild on the issue, since I don't know a thing about iOS internals. The issue seems to be the anti-cheat detecting alterations though. The SDK compatibility is probably a red herring.

Below is the report generated.


PlayCover sets LC_BUILD_VERSION to SDK 14.0 / minOS 11.0 in Macho.swift:134-138. On macOS
26, this causes the system to use legacy compatibility shims for locking and TLS that
interact poorly with Unity's MemoryPack worker threads.

  // Macho.swift:134-138 — Hardcoded SDK version
  var macCatalystCommand = build_version_command(cmd: UInt32(LC_BUILD_VERSION),
                                                 cmdsize: 24,
                                                 platform: UInt32(PLATFORM_MACCATALYST),
                                                 minos: 0x000b0000,  // 11.0
                                                 sdk: 0x000e0000,    // 14.0
                                                 ntools: 0)

Attempted Fix and Result

Patched all binaries (main executable + 24 frameworks including UnityFramework) to
declare SDK 26.1 to use native macOS locking implementation.

Result: The SDK version patch triggers the game's anti-cheat system (anogs.framework),
which detects the binary modifications and sends SIGKILL after ~90 seconds. The
anti-cheat uses hash validation (hash_cache), integrity protection (sc_protect, tcj_protect), and App Attest APIs.

Summary

Scenario Result
SDK 14.0 (current PlayCover) Game crashes with os_unfair_lock corruption after 1-2 minutes
SDK 26.1 (patched) Anti-cheat kills process with SIGKILL after ~90 seconds

Environment

  • macOS 26.1 (25B78)
  • Mac15,6 (MacBook Pro M3 Pro)
  • PlayCover 3.1.0 (856)
  • Arknights: Endfield v1.0.13
<!-- gh-comment-id:3798897941 --> @Thage commented on GitHub (Jan 26, 2026): 1I had Claude Code run wild on the issue, since I don't know a thing about iOS internals. The issue seems to be the anti-cheat detecting alterations though. The SDK compatibility is probably a red herring. Below is the report generated. --- PlayCover sets LC_BUILD_VERSION to SDK 14.0 / minOS 11.0 in Macho.swift:134-138. On macOS 26, this causes the system to use legacy compatibility shims for locking and TLS that interact poorly with Unity's MemoryPack worker threads. ``` swift // Macho.swift:134-138 — Hardcoded SDK version var macCatalystCommand = build_version_command(cmd: UInt32(LC_BUILD_VERSION), cmdsize: 24, platform: UInt32(PLATFORM_MACCATALYST), minos: 0x000b0000, // 11.0 sdk: 0x000e0000, // 14.0 ntools: 0) ``` ## Attempted Fix and Result Patched all binaries (main executable + 24 frameworks including UnityFramework) to declare SDK 26.1 to use native macOS locking implementation. **Result:** The SDK version patch triggers the game's anti-cheat system (`anogs.framework`), which detects the binary modifications and sends SIGKILL after ~90 seconds. The anti-cheat uses hash validation (`hash_cache`), integrity protection (`sc_protect, tcj_protect`), and App Attest APIs. ## Summary | Scenario | Result | |------------------------------|---------------------------------------------------------------| | SDK 14.0 (current PlayCover) | Game crashes with `os_unfair_lock` corruption after 1-2 minutes | | SDK 26.1 (patched) | Anti-cheat kills process with SIGKILL after ~90 seconds | ## Environment - macOS 26.1 (25B78) - Mac15,6 (MacBook Pro M3 Pro) - PlayCover 3.1.0 (856) - Arknights: Endfield v1.0.13
Author
Owner

@TheMoonThatRises commented on GitHub (Jan 31, 2026):

I believe this is the same issue as #2060. Fix should be out on nightlies.

<!-- gh-comment-id:3829309319 --> @TheMoonThatRises commented on GitHub (Jan 31, 2026): I believe this is the same issue as #2060. Fix should be out on nightlies.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/PlayCover#1382
No description provided.