Automattic / Automattic/wordpress-rs

On Linux, the SSL predicate never fires — all certificate failures become `GenericError`

Open
#1,509 0 comments 0 reactions 0 assignees View on GitHub
Bug Error Handling Swift
Dominant language
Rust
Stars
36
Forks
5
Avg merge
17h 30m
Merged PRs (30d)
43

Description

> Split out from Automattic/wordpress-rs#1497 — *Swift executor URLSession error audit*. Section C — SSL payload and platform 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: medium.** Verified against swift-corelibs-foundation `swift-6.2.1-RELEASE`: the libcurl bridge (`MultiHandle.swift`, `urlErrorCode(for:)`) maps no curl SSL error to any `NSURLError` SSL code — `CURLE_PEER_FAILED_VERIFICATION`, `CURLE_SSL_CONNECT_ERROR`, expired/self-signed/wrong-name certs all fall to `NSURLErrorUnknown`. So `errorIsHttpsError` never matches on Linux and the Linux accommodation in `getPeerCertificateChain` (return `[]`, `:296-297`) is dead code. Similarly `.notConnectedToInternet` is never produced there. At minimum, the platform-differences rustdoc (which covers Kotlin/reqwest/Darwin but says nothing about Linux SSL) should document the degradation; the durable fix is an upstream corelibs mapping. Steering Linux consumers to the reqwest executor is the pragmatic alternative.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with native/swift/Sources/wordpress-api/SafeRequestExecutor.swift, especially errorIsHttpsError and getPeerCertificateChain at :296-297, then inspect the platform-differences rustdoc. Confirm the Linux behavior against swift-corelibs-foundation's MultiHandle.swift and urlErrorCode(for:). Done means documenting the SSL and connectivity degradation, or clearly isolating the required upstream corelibs mapping and Linux guidance.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust, swift
Domain
api, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.