Photo save fails with Error Domain=PHPhotosErrorDomain Code=3302

5.7k Views Asked by At

When trying to save screen recording file to my device like:

PHPhotoLibrary.shared().performChanges({() -> Void in
                    PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: url)
                }, completionHandler: { (_, error) -> Void in
                    if let error = error {
                        self.showAlert(title: .saveFailed, message: error.localizedDescription)
                        return
                    }
                    do {
                        try FileManager.default.removeItem(at: url)
                        self.showAlert(title: .saved) {
                            self.dismissSelf()
                        }
                    } catch let error {
                        print(error)
                    }
                })

It sometime fails with error:

Domain=PHPhotosErrorDomain Code=3302

Which mean:

case invalidResource = 3302 // Asset resource validation failed

It succeed sometimes though. Does anyone know what is the invalidResource error mean??

2

There are 2 best solutions below

0
hstdt On

In my case, url requires file extension, e.g. .gif.

0
Anton Plebanovich On

In my case, it was because of an invalid file content. The error response was saved to a file that I later tried to use.