Meeting SDK Type and Version
Linux Meeting SDK (ARM64) v6.7.5.7394
Description
We’re using the Linux Meeting SDK to build a bot that joins meetings and records raw audio/video via StartRawRecording(). When the bot doesn’t already have local recording permission (e.g., no app_privilege_token was provided at join time, or it was invalidated), we attempt to dynamically request the privilege at runtime.
Before calling RequestLocalRecordingPrivilege(), we call IsSupportRequestLocalRecordingPrivilege() on the IMeetingRecordingController to check whether the feature is supported. This call intermittently returns SDKERR_MODULE_LOAD_FAILED instead of SDKERR_SUCCESS. The majority of sessions succeed, but a significant minority fail with this error. The behavior appears non-deterministic – the same bot code, configuration, and environment can succeed or fail across different sessions.
We’d like to understand:
-
What conditions cause IsSupportRequestLocalRecordingPrivilege() to return SDKERR_MODULE_LOAD_FAILED?
-
Is there a race condition or timing dependency (e.g., calling too early after joining the meeting) that could explain why the module sometimes fails to load?
-
Is there anything we can do to mitigate this, such as retrying after a delay?
Error
ReadZoomRecordingHandler::RequestLocalRecordingPermission: Requesting local recording privilege is not supported. SDKError: SDKERR_MODULE_LOAD_FAILED
This error is returned by IMeetingRecordingController::IsSupportRequestLocalRecordingPrivilege(). The SDK enum defines SDKERR_MODULE_LOAD_FAILED as “Loading module failed.”
Troubleshooting Routes
-
Confirmed InitSDK() completes successfully with SDKERR_SUCCESS
-
Confirmed the bot is fully joined to the meeting – IMeetingParticipantsController, IMeetingRecordingController, and GetMySelfUser() all return valid, non-null pointers
-
Confirmed CanStartRecording() returns non-success (the bot does not yet have permission, which is why we attempt to request it)
-
The IMeetingRecordingController pointer itself is valid and non-null
-
The primary path using app_privilege_token (set via JoinParam.withoutloginuserJoin.app_privilege_token) works when a valid token is available; this issue only affects the fallback path when the token is absent or invalid
-
The issue is intermittent – the same code path succeeds in the majority of sessions but fails in a significant minority, suggesting a timing issue or transient internal SDK state
How To Reproduce
-
Authentication: JWT/OAuth credentials, joining via IMeetingService::Join() with JoinParam4WithoutLogin – with app_privilege_token set to nullptr (or omitted)
-
Once in-meeting, call IMeetingRecordingController::IsSupportRequestLocalRecordingPrivilege()
-
The call intermittently returns SDKERR_MODULE_LOAD_FAILED instead of SDKERR_SUCCESS
-
Environment: Linux (Ubuntu), ARM64, headless / no GUI
-
SDK: zoom-meeting-sdk-linux_arm64-6.7.5.7394