SolidError
The single failure type for every operation in the library.
A SolidError carries a stable machine code, a developer-facing message (diagnostic — not for end users; branch on code and localize that), the originating httpStatus when a server responded, a retryable hint, and the underlying cause when one exists. It replaces the library's former mix of per-feature result types, thrown domain exceptions, nullable returns, and Success(empty)-on-failure.
HTTP responses map to an error exactly once via fromHttp; local throwables via fromThrowable.
Inheritors
Types
Definitive no-access to a resource; the UI can offer to send an access request.
Access could not be authoritatively determined (transient); retry rather than deny.
The operation was cancelled (coroutine cancellation).
409 — the request conflicts with the resource's current state.
403 — authenticated but not allowed.
An inbound notification's actor doesn't match the resource owner; it was dropped.
The recipient's inbox returned 403.
The recipient's inbox returned 401.
A response body (or local payload) could not be parsed/serialized.
405 — the server does not allow this method on the resource.
A network I/O failure before a response was obtained; retryable.
The target agent's profile advertises no ldp:inbox, so a notification can't be delivered.
No authorized local session exists for the WebID — complete sign-in first.
404 / 410 — the resource does not exist.
A non-auth failure delivering a notification to an inbox.
412 — an If-Match / If-None-Match precondition failed (the resource changed since it was read). Re-read to obtain a fresh ETag, then retry.
429 — rate limited; retry after a delay.
5xx — a server-side failure; typically transient.
A conditional ACL/ACR write was rejected (412) by a concurrent change; re-read and retry.
A request or connection timed out; retryable.
A TLS/certificate failure.
401 — no valid credentials for the target (distinct from NotAuthenticated, a missing local session).
A non-success status with no more specific mapping.
Anything with no more specific mapping.
The resource's access-control backend isn't supported.
Properties
Stable classification; safe to branch on and localize.
The HTTP status that produced this error, or null for local/transport errors.
true when retrying the same request may succeed on its own (transient server/transport conditions). A false value does not mean "never retry" — e.g. PreconditionFailed needs a fresh ETag first (branch on code).
Functions
Wraps this error in a throwable for getOrThrow-style propagation, preserving cause.