diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e833847ca..88e933a0dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Fixes + +- Fix crash with AVAssetDownloadTask in urlSessionTask:setState: (#7891) + ### Features - Add Set conformance to SentryAttributeValue (#7876) diff --git a/Sources/Sentry/SentryNetworkTracker.m b/Sources/Sentry/SentryNetworkTracker.m index fc5f47e28a..f3acbc568b 100644 --- a/Sources/Sentry/SentryNetworkTracker.m +++ b/Sources/Sentry/SentryNetworkTracker.m @@ -236,6 +236,10 @@ - (void)urlSessionTask:(NSURLSessionTask *)sessionTask setState:(NSURLSessionTas return; } + if (![self isTaskSupported:sessionTask]) { + return; + } + #if SENTRY_TARGET_REPLAY_SUPPORTED SentryOptions *options = SentrySDK.startOption; NSString *urlString = sessionTask.originalRequest.URL.absoluteString; @@ -246,10 +250,6 @@ - (void)urlSessionTask:(NSURLSessionTask *)sessionTask setState:(NSURLSessionTas } #endif // SENTRY_TARGET_REPLAY_SUPPORTED - if (![self isTaskSupported:sessionTask]) { - return; - } - // Suspended is not a terminal state: a task can be suspended and later resumed or // cancelled, so we must wait for a final state before finishing the span. if (newState == NSURLSessionTaskStateRunning || newState == NSURLSessionTaskStateSuspended) {