Thanks @eskimo.
"If the extension is already active, the request succeeds in short order, without significant delay or user interaction. If you request activation of a new version of an already-active extension, the system prompts the user to resolve the conflict before proceeding."
I also did not see any system prompts for this case.
In production: My main app can accept a external parameter to do activationRequestForExtension of the system extension. During the whole App upgrade, in the script of installer would call my main app with "activate" parameter to activate the new system extension. The log of sysextd and nesessionmanager said the system extension has been activated, but it was not running unless I restarted the nesessionmanager or reboot or deactivated it first and activated it again.
default 23:36:25.429287+0800 sysextd setting +x bit on executable in bundle file:///Library/SystemExtensions/0B50E56F-108F-4F48-B9D0-26788FBB7817/com.android2test.sysext.systemextension/
default 23:36:25.429610+0800 sysextd notifying categories that extension com.android2test.sysext will start
default 23:36:25.429687+0800 sysextd returning cdhash for local arch x86_64 of extension com.android2test.sysext
default 23:36:25.430012+0800 sysextd starting extension com.android2test.sysext via owning category com.apple.system_extension.network_extension
default 23:36:25.430049+0800 sysextd returning cdhash for local arch x86_64 of extension com.android2test.sysext
default 23:36:25.431545+0800 sysextd extension point confirmed that extension com.android2test.sysext is runnable
default 23:36:25.431587+0800 sysextd changing state of extension com.android2test.sysext to activated_enabled
default 23:36:25.431615+0800 sysextd extension *** com.android2test.sysext (1.1.0/1.1.0) advancing state from activated_enabling to activated_enabled
default 23:36:25.445482+0800 sysextd observer for 'com.android2test.app' reached success: activated_enabled
Not every time, it's not 100% can be reproducible.
Btw, if I set the system extension developer on(SIP disabled), then I can do multiple system extension activation with the same version. In this way, I can see the similar issue more easier.