# `URP.SocketError`

Raised when the socket to `soffice` fails during a call.

`reason` is the atom `:gen_tcp` reported — `:timeout`, `:closed`, or a POSIX
error. Conversion functions return that atom as-is, so a caller can tell a
`soffice` that stopped answering from a document it refused, which arrives as
a message string.

# `t`

```elixir
@type t() :: %URP.SocketError{
  __exception__: term(),
  message: String.t(),
  reason: :timeout | :closed | :inet.posix()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
