Split out from #1497 — Swift executor URLSession error audit. Section E — Cancellation gaps.
File references are to native/swift/Sources/wordpress-api/SafeRequestExecutor.swift unless noted; :NNN line numbers were verified against fix/converge-executor-error-classification.
Severity: low. handleHttpsError and handleNonExistentSiteError attach executorDelegate.redirects(for:); the other three failure branches don't, losing the redirect trail for a request that redirected and then died mid-transfer, was cancelled, or failed unclassified. redirects(for:) returns nil when no redirects occurred, so attaching it everywhere is behavior-neutral in the common case. Overlaps the payload half of #1503; looks like an oversight rather than a decision.
Severity: low.
handleHttpsErrorandhandleNonExistentSiteErrorattachexecutorDelegate.redirects(for:); the other three failure branches don't, losing the redirect trail for a request that redirected and then died mid-transfer, was cancelled, or failed unclassified.redirects(for:)returnsnilwhen no redirects occurred, so attaching it everywhere is behavior-neutral in the common case. Overlaps the payload half of #1503; looks like an oversight rather than a decision.