Skip to main content

What Problem Does This Solve?

When LCK operations fail, you need to know why:
  • Was it a permission issue?
  • Storage full?
  • Already recording?
  • Invalid configuration?
Error codes and messages help you handle failures appropriately—show the right error message, retry the operation, or disable features.

When to Use This

Reference this when:
  • Handling recording failures
  • Debugging SDK integration issues
  • Implementing error recovery logic
  • Displaying user-friendly error messages
  • Validating configuration before recording

Error Mechanism

There is no ELCKError enum in the SDK. Errors are reported through the FOnRecordingError delegate on ULCKService, which provides a human-readable FString ErrorMessage and an int32 ErrorCode.
The following table documents common error codes and their meanings:

Error Handling Patterns

Basic Synchronous Check



Validation Before Recording


Common Error Scenarios

InvalidTrackingId

Problem: The Tracking ID in Project Settings is empty or not in valid UUID v4 format Symptoms:
  • Recording immediately fails
  • Error log: “Invalid Tracking ID - recording disabled”
Solution:
  1. Get your Tracking ID from LIV Developer Dashboard
  2. Go to Project Settings → Plugins → LCK SDK
  3. Enter the Tracking ID in format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
Validation code:

RecordingAlreadyStarted

Problem: Attempted to start recording while already recording Symptoms:
  • Start recording fails
  • Confusing UX (button does nothing)
Solution: Always check state before starting
Better pattern with UI:

EncoderNotAvailable

Problem: Platform-specific encoder failed to initialize Common reasons:
  • Windows: Media Foundation not available (rare, usually on old/stripped Windows)
  • Android: Hardware encoder not supported (very old devices)
  • Vulkan interop failed (Android Quest devices)
Solution:
  1. Check platform requirements
  2. Verify GPU supports H.264 encoding
  3. Enable verbose logging:
  1. Look for detailed error in LogLCKEncoding:
    • Windows: HRESULT error codes
    • Android: MediaCodec configuration errors
Fallback strategy:

InsufficientStorage

Problem: Not enough free disk space for recording How much space is needed:
  • SD (720p @ 30fps): ~2 GB per hour
  • HD (1080p @ 60fps): ~5 GB per hour
  • 2K (1440p @ 60fps): ~9 GB per hour
  • 4K (2160p @ 60fps): ~16 GB per hour
Solution:
Recovery options:
  1. Prompt user to free up space
  2. Automatically reduce quality profile
  3. Clear old recordings

PermissionDenied

Problem: User denied microphone or storage permission on Android Android permissions required:
  • RECORD_AUDIO — Microphone capture
  • WRITE_EXTERNAL_STORAGE — Save recordings (API < 29)
Solution:
Handle denial gracefully:

Complete Error Handler Example


Error Logging

LCK uses Unreal’s logging system with these categories: Enable verbose logging:
What you’ll see:

Key Takeaways

Always check IsOk/bSuccess — Never assume operations succeed
Validate before recording — Check tracking ID, storage, state
Handle common cases — Storage, permissions, state conflicts
User-friendly messages — Don’t show raw error codes to players
Enable logging for debugging — VeryVerbose shows detailed encoder info