<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "OpenSSL",
  "identifier" : "/documentation/OpenSSL/OpenSSLError/errorDescription",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "OpenSSL"
    ],
    "preciseIdentifier" : "s:7OpenSSL0A8SSLErrorO16errorDescriptionSSSgvp"
  },
  "title" : "errorDescription"
}
-->

# errorDescription

A user-presentable description of the failure.

```
var errorDescription: String? { get }
```

## Return Value

A non-`nil` localized description for every case.

## Discussion

Conforms to Foundation’s
[`LocalizedError`](https://developer.apple.com/documentation/foundation/localizederror)
contract: returns a short, human-readable string that begins with a
noun phrase identifying the failure category (e.g. `"Invalid key: "`)
and ends with the associated reason carried by the case. The
returned string is the same value surfaced by
`(error as NSError).localizedDescription` and by
`String(describing:)` via `error.localizedDescription`.

The value is deterministic for a given case-and-reason pair; it is
not a cached property but recomputes each call. Callers that log
or display the description should treat it as plain text suitable
for end-user surfaces — it does not contain sensitive material
such as key bytes or stack frames.

> Note: The return type is `String?` to match the `LocalizedError`
> protocol, but every case in ``doc://OpenSSL/documentation/OpenSSL/OpenSSLError`` produces a non-`nil`
> value. Callers may safely unwrap with `??` against an empty
> fallback.