Crash with AVMutableComposition insertTimeRange Method

A small number of crashes are being reported on Firebase. When attempting to use the insertTimeRange:ofAsset:atTime:error: method of AVMutableComposition, a crash occurred with the error message -[__NSArrayM insertObject:atIndex:]: object cannot be nil.

Most of them appear in versions of ios 17.0 and above.

Here's my code:

- (AVMutableComposition *)createtrimAsset:(AVAsset *)asset
                             andStartTime:(CGFloat)startTime
                                  endTime:(CGFloat)endTime{

    NSError *error = nil;
    CGFloat timescale = 1000000;
    AVMutableComposition *mutableComposition = [AVMutableComposition composition];
    CMTime sStartTime = CMTimeMakeWithSeconds(CMTimeGetSeconds(asset.duration)*startTime, timescale);
    CMTime eEndTime = CMTimeMakeWithSeconds(CMTimeGetSeconds(asset.duration)*endTime, timescale);
    [mutableComposition insertTimeRange:CMTimeRangeMake(sStartTime, CMTimeSubtract(eEndTime, sStartTime)) ofAsset:asset atTime:kCMTimeZero error:&error];
    return mutableComposition;
}

I attempted to reproduce this crash by deliberately setting the timeRange or asset to unusual values, such as asset=nil, or asset.duration=0, or asset.duration=NAN, but all attempts failed.

What could be causing this exception? Any advice would be of great help to me.

Crash with AVMutableComposition insertTimeRange Method
 
 
Q