modus
Menu

Error kinds and units

The error record of a call that failed holds a kind, a unit, and values. 38 kinds and 36 units.

Kinds

NumberKindWhat value, limit and found hold
0None
1EmptyA text argument has no byte. limit: the most that it can have.
2Too_Longvalue: the size of the argument; limit: the most that it can have.
3Too_Smallvalue: the size of the argument; limit: the least that it must have.
4Bad_Valuevalue: a value that the call refuses; limit: the largest value that it takes, or 0 when the sentence gives no range.
5Bad_Flagsvalue: the flags; limit: the flags that the call knows.
6Bad_Bytevalue: the offset of the byte in the text; found: the byte.
7Bad_Addressvalue: the address; limit: the count of bytes; found: 1 when the call writes there.
8Handle_Absentvalue: a number that names no handle of the caller.
9Handle_Endedvalue: the handle; found: an End.
10Handle_Kindvalue: the handle; limit: the kind of object that the call needs; found: the kind of its object (op.Object_Kind).
11Handle_Rightsvalue: the handle; limit: the rights that the call needs; found: the rights of the handle (op.Rights).
12Budgetvalue: the handle of the budget; limit: what the call asks; found: what the budget holds.
13Budget_Hiddenvalue: the handle of the budget; limit: what the call asks. The handle has no right Read: the budget is not described.
14Over_Limitvalue: what the call makes; limit: the limit. Unit Blocks (the storage service): the blocks of the current objects with the change, with no earlier version kept.
15FullA table has no free place. limit: its capacity.
16Statevalue: the handle; found: the op.Program_State of its object, or 0 when the handle has no right Read.
17AbsentNo object has the name or the number of the argument. found: 0, or the number from 1 of the row of a table argument that names it.
18DamagedThe object of the argument exists, and a block of it has a wrong check.
19DeviceA device reported an error. found: the status of the device.
20No_GrantThe caller has no grant for this call: the unit says which grant.
21MalformedThe module of the argument breaks a rule of the module format. value: the kind of the problem; found: the byte of the file.
22No_Targetvalue: the handle of a memory object that names no one other program to receive the handle.
23Overlapvalue: an address, or with the unit Region an offset in the call region of an isolated call; limit: the count of bytes. They overlap something that the program has, or another argument of the call that is written.
24Unknown_Operationvalue: the number of the operation.
25RefusedThe call refused, and gives no more detail. found: the status (op.Status for the kernel).
26No_AnswerNo answer before the time limit. value: the IPv4 address that did not answer, or 0; limit: the milliseconds waited; found: what did not answer: 1 its hardware address (ARP), 2 the echo, 3 the device.
27UnsupportedThe receiver does not do this command. value: the command, or the field that it does not do.
29BusyToo many requests are in flight. value: the requests in flight, or 0 when the receiver does not count them; limit: the most.
30Out_Of_RangeThe argument names units past the end. value: the end of what it names (its first unit and its count); limit: the units that exist; found: 0, or the number from 1 of the record of a table argument that names them (a record that names bytes of another argument by an offset, docs/MODULE_CONTRACT.md, "Tables and bytes as parameters").
31ReservedThe argument names a program of the system that the call does not act on: it starts at boot, or it is a device service.
32Not_Payervalue: the handle of a budget that does not pay for the memory object of the call. It says nothing of the budget.
33Object_Sharedvalue: the handle of a memory object, or 0; the call needs an object that only this program names, with one mapping at most.
34Object_Markedvalue: the handle of a memory object; found: its pages with a protection of their own. The object is not mapped again and not given.
35Whole_Onlyvalue: an address; limit: the bytes of the range. The range is a part of a mapping whose protection changes only whole (device memory, large pages), or of an area that the system keeps (a thread area).
36Not_Multiplevalue: the argument; limit: the number that it must be a multiple of; found: the rest.
37Not_AuthenticThe bytes of the argument do not prove what they must: the tag of a sealed text, or a signature, does not verify. No byte of the result is given.
38Seed_Too_WeakThe random seed of the program is weaker than the least strength that the caller accepts. value: the strength of the seed; limit: the least strength asked (1 weak, 2 processor, 3 entropy). Nothing is made.

Read from contract/errors/errors.odin.

Units

NumberUnitIn a sentenceWhat the contract says
0None
1Bytesbytes
2Pagespages
3Blocksblocks
4ObjectsobjectsObjects of a store.
5Storesstores
6Programsprograms
7Threadsthreads
8HandleshandlesThe handle table of a program.
9Mappingsmappings
10ModulesmodulesModule records of a program.
11WordswordsThe words of one word wait.
12Log_Recordslog records in one secondLog records in one second.
13Processormicroseconds of processor time in one secondMicroseconds of processor time in one second.
14Budgetsbudgets
15Interruptsinterrupts
16Memorymemory objectsMemory objects of the machine.
17Storea private storeNo_Grant: a private store.
18Personto act for the personNo_Grant: to act for the person.
19Recordsrecords
20Connectiona connection to this serviceNo_Grant: a connection to the service.
21Millisecondsmilliseconds
22ConnectionsconnectionsThe records of a TCP connection table (support/tcp).
23Tcp_Portslocal TCP portsThe local TCP ports of a client grant.
24Requestsrequests in flightRequests in flight.
25Endpointa remote address and portA remote of the network: an IPv4 address and a port, in one value (endpoint_pack). No_Grant: value the remote that the call names, limit the remote of the grant (0: none), found the local port when it is not a port of the endpoint.
26Regiona data regionAbsent: the data region of a ring. Overlap: bytes of the call region of an isolated call; value is their offset, limit their count.
27Root_Commandsthe commands of the root ring that change other programsNo_Grant: the commands of the root ring that change other programs.
28Servicesservices that runServices that run.
29Grantsgrants of the programThe grants of a program (system.Root_Grant).
30Displaya surface on the screenNo_Grant: a surface on the screen (the ring to the compositor).
31Terminala terminalNo_Grant: a terminal (the terminal ring and the text region).
32Lent_Handleshandles lent for this callHandle_Absent: the handle did not come through the call ring for this call (an isolated call).
33Versionsversions of the objectAbsent: the versions of an object (value: the generation that the argument named).
34Countsthe counts of the blocks of the storeDamaged: the counts of the blocks of a store are not trusted after a fault of the service; it makes no change in the store.
35Referencesnames of one blockOver_Limit: the names of one block, which a count holds.
36Commit_Blocksblocks that one commit can changeFull: the blocks that one commit can change or write.

Read from contract/errors/errors.odin.