The issue I found, is that I had to use the latest API for requesting authorization status, PHPhotoLibrary.authorizationStatus(for: .readWrite) and PHPhotoLibrary.requestAuthorization(for: .readWrite) in order to detect the limited case, otherwise I was always getting just authorized returned.