Remote Transport Error
Trace failures that prevent SER from recovering application or HTTP meaning.What this error means and what can trigger it
RemoteTransportError means the client could not complete or interpret the remote protocol. It is tagged data with optional cause and body fields. It deliberately has no status, because this category includes failures for which SER cannot prove that a usable HTTP response existed.
The tag covers failures such as missing endpoint metadata, malformed form envelopes, payload-schema mismatches, and native Promise rejections without a numeric status. More specific SER classes, including RemoteFormEndpointMissingError, InvalidRemoteFormResponseError, UnsupportedRemoteFormResponseError, and RemoteErrorDecodeError, normally sit in cause rather than appearing directly on the public effect error channel.
Exactly where it triggers
The factory itself is modules/svelte-effect-runtime/src/remote/shared.ts L335 @ C17. Current construction sites are:
modules/svelte-effect-runtime/src/remote/client/form-transport.ts L90 @ C9for missing form endpoint metadata.modules/svelte-effect-runtime/src/remote/client/form-transport.ts L148 @ C9for a top-level form envelope that fails structural decoding.modules/svelte-effect-runtime/src/remote/client/form-transport.ts L164 @ C9for a result envelope with neither aresultnordataslot.modules/svelte-effect-runtime/src/remote/client/form-transport.ts L174 @ C9for a parsed result payload that fails SER's payload schema.modules/svelte-effect-runtime/src/remote/client/failures.ts L78 @ C11for a marked serialized failure whose encoded value cannot be decoded.modules/svelte-effect-runtime/src/remote/client/failures.ts L184 @ C9for a native rejection that is neither an existing tagged failure nor an object with a numeric status.
The final fallback shows the classification boundary:
if (status !== undefined) {
return create_remote_http_error(status, body, error);
}
return create_remote_transport_error(error);Remote adapters pass rejected native calls through this normalization from modules/svelte-effect-runtime/src/remote/client/effect.ts L33 @ C11.
Why this is the case
A typed remote failure needs a successfully decoded error envelope, whereas an HTTP failure needs a trustworthy numeric status. RemoteTransportError is what remains when the operation breaks before SER can establish either fact.
Keeping cause and body separate matters during diagnosis. cause records why the protocol failed, often as a specific SER RuntimeError; body records the value that arrived, if anything did. Neither field upgrades the failure into a domain error. The wrapper prevents low-level parser errors, rejected strings, and protocol details from creating an unstable public error union.