12 Error Codes
Lex Berezhny edited this page 2018-08-14 18:26:46 -04:00

Proposal for consistent error codes across the entire lbrynet API.

Code Name
1xx Daemon start and other CLI command failures (non-recoverable)
10x Meta error codes not presented by lbrynet itself but from apps trying to interact with lbrynet.
100 Cannot find the lbrynet command.
101 Permission denied trying to execute lbrynet command.
102 Executing lbrynet command does not produce any result.
103 Executing lbrynet produces a result that is not normal (eg. a segfault).
104 Failed to establish HTTP connection to lbrynet. (Is it running?)
105 HTTP connection established but daemon is not responding to commands.
106 Failed to establish WebSocket connection to lbrynet. (Is it running?)
107 WebSocket connection established but daemon is not responding to commands.
11x Enough of lbrynet was able to start to determine external factors causing eventual failure.
110 Out of disk space.
111 Out of RAM.
12x Internal factors preventing lbrynet from bootstrapping itself.
120 Incompatible version of Python.
121 Incompatible version of some library.
13x Configuration errors.
130 Cannot write configuration file. (When writing the default config fails on startup, such as due to permission issues.)
131 Cannot find provided configuration file. (Can't open the config file user provided via command line args.)
132 Failed to parse the configuration file. (Includes the syntax error / line number to help user fix it.)
133 Configuration file is missing setting that has no default / fallback.
134 Configuration file has setting with invalid value.
14x Errors preparing to execute commands.
140 Command does not exist.
141 Command is deprecated.
142 Invalid arguments for command.
143 Command is temporarily unavailable. (such as waiting for required components to start)
144 Command is permanently unavailable. (such as when required component was intentionally configured not to start)
2xx Networking
20x General connectivity.
201 No internet connection.
202 Router does not support UPnP.
21x Wallet server connectivity.
210 Failed connecting to a lbryumx server. (Should normally not need to be handled higher up as lbrynet will retry other servers.)
211 Failed connecting to all known lbryumx servers. (Will need to bubble up and require user to do something.)
212 lbryumx droppped our connection. (Maybe we were being bad?)
22x Wallet connection dropped.
220 Disconnected from lbryumx server due to suspicious responses. generic
221 Disconnected from lbryumx server due to SPV validation failure.
222 Disconnected from lbryumx server due to incorrect header received.
228 Disconnected from lbryumx server due to incompatible protocol version.
229 Disconnected from lbryumx server due to unresponsiveness.
23x P2P connection errors.
24x P2P download errors.
240 Failed to download blob. generic
25x P2P upload errors.
26x DHT connectivity issues.
27x DHT protocol issues.
3xx Blockchain
30x Transaction rejected.
300 Transaction rejected, unknown reason.
301 Fee too low.
302 Invalid signature.
31x Insufficient funds. (determined by wallet prior to attempting to broadcast a tx; this is different for example from a TX being created and sent but then rejected by lbrycrd for unspendable utxos.)
310 Not enough LBC to cover the transaction, even after all UTXOs reach 6 confirmations.
311 Not enough LBC to cover the transaction, will be enough after some more confirmations.
32x Channel signing.
320 Channel signing key not found.
321 Channel signing key is out of date. (For example, channel was updated but you don't have the updated key.)
4xx Blobs
40x Blob availability.
400 Blob not found.
401 Permission denied to read blob.
402 Blob is too big.
403 Blob is empty.
41x Decryption / Assembly
410 Failed to decrypt blob.
411 Blobs is corrupted.
42x Encrypting / Creating
420 Failed to encrypt blob.