General Upgrade, NEW: WebServers, Better Docs
Some checks failed
CI / checks (push) Failing after 2m23s
Some checks failed
CI / checks (push) Failing after 2m23s
This commit is contained in:
parent
5f11d476b6
commit
08aa193fd1
119 changed files with 10029 additions and 4883 deletions
46
docs/ERRORS.md
Normal file
46
docs/ERRORS.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Error Reference
|
||||
|
||||
MTP reports codec failures separately from connection and transport failures.
|
||||
|
||||
## CodecError
|
||||
|
||||
| Variant | Meaning |
|
||||
| --- | --- |
|
||||
| `UnknownVersion` | A codec was asked to use an unsupported protocol version. |
|
||||
| `UnknownCommunicationType` | A communication type has no mapping in the selected type map. |
|
||||
| `UnknownDataType` | A data type has no mapping in the selected type map. |
|
||||
| `ReservedCommunicationType` | An application attempted to use a reserved communication type ID. |
|
||||
| `InvalidEncoding` | Bytes do not match the MTP value or frame format. |
|
||||
| `TooManyEntries` | A serialized value or frame exceeds its representable size. |
|
||||
| `CryptoFailed` | Signing, verification, encryption, or decryption failed while encoding or decoding. |
|
||||
| `MissingField` | A required typed field is absent. |
|
||||
|
||||
An application should select a `TypeMap` for the negotiated version and treat `UnknownCommunicationType` and `UnknownDataType` as a type-map compatibility failure. Do not send the unmapped variant again on that connection.
|
||||
|
||||
Retry guidance: retry `ConnectionLost`, `ConnectingError`, and transient stream errors after applying backoff. Correct the request before retrying `MessageTooLarge`, `InvalidEncoding`, `MissingField`, and type-map errors.
|
||||
Retry `AuthenticationFailed` only after changing credentials or host policy;
|
||||
repeating the same proof does not repair a validation failure.
|
||||
|
||||
## CommunicationError
|
||||
|
||||
| Variant | Typical cause |
|
||||
| --- | --- |
|
||||
| `UseAfterClosed` | A send or receive operation ran after the connection handle was closed. |
|
||||
| `ClosedLocally` | The local endpoint initiated shutdown. |
|
||||
| `ClosedByPeer` | The peer closed the connection. |
|
||||
| `ConnectionLost` | The connection ended without a normal close. |
|
||||
| `ParseCommunicationValue` or `ParseError` | An incoming frame or certificate could not be parsed. |
|
||||
| `Encode` | An outgoing value could not be serialized. |
|
||||
| `MessageTooLarge` | A frame exceeds `Policy::max_message_size` or the handshake limit. |
|
||||
| `StreamClosed` or `StreamError` | A QUIC stream ended or returned an I/O error. |
|
||||
| `ConnectingError` or `ConnectionError` | The endpoint could not establish or maintain QUIC. |
|
||||
| `AuthenticationFailed` | A login, registration, signature, nonce, or host response failed validation. |
|
||||
| `CertificateParseFailed` or `CertificateLoadFailed` | TLS certificate input is malformed or unavailable. |
|
||||
| `CryptoProviderInstallFailed` | The native TLS crypto provider could not be installed. |
|
||||
| `Other` | A component returned an error without a more specific variant. |
|
||||
|
||||
Native builds may expose additional variants wrapping QUIC and WebTransport errors. WASM builds expose the transport-independent subset.
|
||||
|
||||
## Authentication Rejections
|
||||
|
||||
The host reports unsupported or missing protocol versions through `AcceptError`. Authentication failures return `AcceptError::AuthenticationFailed` after the host sends a rejected handshake response. The authentication flow and its signed fields are defined in [Security](SECURITY.md).
|
||||
Loading…
Reference in a new issue