AetherEngine.swift:2343, :2470, :2610:
state = .error("Failed to load: \(error.localizedDescription)")
HLSIngestError is CustomStringConvertible but not LocalizedError, so localizedDescription falls through to Foundation's generic bridge:
description : playlistUnreachable(500)
localizedDescription: The operation couldn't be completed. (HLSIngestError error 0.)
The status is raised correctly (HLSVODIngestReader.swift:499-501) and rendered correctly (HLSIngestError.swift:17-19), then dropped at the boundary. A server refusing a transcode is currently indistinguishable from a corrupt file.
Ask: state = .error("Failed to load: \(error)"), or conform the error enums to LocalizedError with errorDescription returning description. The second fixes the class rather than three call sites; no preference beyond that.
Scope: load path only. A mid-session failure on the nativeRemoteHLS bypass arrives through AVPlayerItem (NativeAVPlayerHost.handleItemFailed:610-660) and is not addressed here.
AetherEngine.swift:2343,:2470,:2610:HLSIngestErrorisCustomStringConvertiblebut notLocalizedError, solocalizedDescriptionfalls through to Foundation's generic bridge:The status is raised correctly (
HLSVODIngestReader.swift:499-501) and rendered correctly (HLSIngestError.swift:17-19), then dropped at the boundary. A server refusing a transcode is currently indistinguishable from a corrupt file.Ask:
state = .error("Failed to load: \(error)"), or conform the error enums toLocalizedErrorwitherrorDescriptionreturningdescription. The second fixes the class rather than three call sites; no preference beyond that.Scope: load path only. A mid-session failure on the
nativeRemoteHLSbypass arrives throughAVPlayerItem(NativeAVPlayerHost.handleItemFailed:610-660) and is not addressed here.