O.G.A.S. Русский

Error codes

All the refusal codes of the platform: whose code it is and when it comes. The person sees the same refusal in words in the window; here is its code, to find the cause.

1 Error codes

The document is a part of the contract Exchange with the kernel: the refusal codes of the platform and the parts that answer for them. The form of an error in a message — Exchange with the kernel, section 3.

The field data of a domain error holds: error_code, category, message_key, the parameters of the text if the text takes them, retryable (whether a retry is allowed), details that may be shown, and trace_id — the trace of the call the refusal answers: the one named in the parameters of the call, or the trace of the run whose step it is (context.trace_id). A refusal that named its trace keeps it. message_key is error.<code> by default; a refusal may name its own key when one code has several causes, each with its own words, and list in names what its words speak of — nodes, variables, links. The window says the words of the key and after them what is named. So refuses process.group.detach (Methods of the graph, section 1).

Categories: protocol, config, runtime, graph, module, document, ui. The category is given by the owner of the code. The code of a part is of the category of the part: the function of the graph — graph, the function of modules and the refusals of modules — module, the function of settings — config, the workshop and the pulpit — ui, the rest — runtime. A common code and a code of a contract are of the category their owner declared beside the codes (core/protocol/src/codes.rs, the categories themselves are constants of the contract in core/protocol/src/constants.rs): the exchange — protocol, documents and paths — document, values of settings — config, codes of the contract of the function of modules — module; a code keeps this category whichever part gives it. The codes of the kernel are divided the same way — the exchange, descriptions and the register (config), documents, the rest (runtime) — and declared in core/kernel/src/codes.rs.

Each code is declared once — in the file codes.rs of its owner; codes several parts give — in the common code of the protocol (core/protocol/src/codes.rs); a code of the contract of an owner that a dependent part gives too — in the section of the owner's contract core/protocol/src/contracts/<owner>/codes.rs, its text at the owner. The text for the person is kept in the owner's dictionary under the key error.<code>; the owner of common codes is the kernel. The check in make ci does not pass if a code is in the code but not written here, written here but not declared, or has no text in both languages.

Common — core/protocol/src/codes.rs, texts at the kernel:

Table 1 — Common error codes

Code When
invalid_request a request or an answer not in form: a required field missing, a wrong type
method_not_found there is no such method at the kernel or at any function
rpc_timeout no answer for longer than the asker is ready to wait
peer_closed the connection to the kernel broke while an answer was awaited
function_lost the owner of the method disconnected or failed without answering
function_unavailable the function the call is addressed to does not work now. By it and by method_not_found (nobody declared the method) the caller learns that an optional dependency is not there
transport_write_failed a message could not be written into the channel
document_invalid a document of the wrong kind: not JSON, an unknown or newer format, a required part missing
document_not_found there is no document at this path
document_write_failed a document could not be written to disk
path_outside_root the path leads beyond the data folder or the installation
process_spawn_failed an OS process could not be started
settings_type the value of a setting is of the wrong type
settings_range a number out of the allowed bounds
settings_choice a value not from the closed set

The kernel — core/kernel/src/codes.rs:

Table 2 — Error codes of the kernel

Code When
backpressure the queue of requests of one part is full (core.rpc_queue)
capability_denied the function lacks the capability the method needs, or the register does not give it
command_conflict while introducing itself a function declared a method that already belongs to another
command_id_conflict the same command_id came with other parameters
contract_incompatible the function does not support the version of the contract of the kernel
document_list_failed a folder in the data could not be read, or it is not a folder
document_remove_failed a file or a folder could not be deleted
document_remove_refused the path is too wide: a whole section is not deleted by one call
document_too_large the document is larger than core.document_max_bytes
function_dependency_unavailable the function is not started: the one it depends on is unavailable
function_description_invalid the description of a function functions/<id>/function.json cannot be read: no file, not JSON, a foreign format, another function described. The kernel does not start such a function; the others work
function_exited the OS process of a function ended
function_handshake_timeout a started function did not introduce itself to the kernel within core.function_start_timeout_ms
function_not_expected a function introduces itself that is not in the register
function_registry_invalid the register of functions cannot be read: not JSON, a foreign format, a repeated id, a cycle of dependencies, a verb cli against the rules of File formats, section 3
function_restart_exhausted the attempts to restart a fallen function are spent
handshake_required the first message was not an introduction
health_timeout the function did not answer the health check in time
instance_stopping the instance is stopping and takes no new starts
invalid_environment someone tries to pass the variables of the link to the kernel into the environment of a module
invalid_function_command a function declared a method with the prefix core.
invalid_launch_token the launch token is wrong
line_not_framed a line for the stdin of a module without a line break at its end
line_too_long a line longer than the limit of JSON Lines
peer_mismatch at the other end of the socket is the wrong user or the wrong OS process
process_limits_unavailable an OS process asks for limits of memory or processors, and the user's systemd in Linux does not answer; it is not started without them
process_not_found there is no OS process of a module with such a process_handle
process_owner_mismatch the process_handle belongs to another function
space_budget_exceeded the new thing does not fit into the room the person gave the platform (core.disk_budget_gib)
space_disk_full the new thing would take the room on the disk kept free (core.disk_free_min_gib)
process_stdin_failed the stdin of a module could not be written: the program closed
accept_failed the kernel could not accept a connection (an entry of the kernel journal)
connection_limit there are already core.connections_max connections to the kernel: the new one is not accepted (an entry of the kernel journal, one while the limit holds)

The graph — functions/graph/src/codes.rs:

Table 3 — Error codes of the function of the graph

Code When
graph_invalid the scheme of a process does not pass the check: links, ports, types, shared objects, parameters of nodes; or data in a run do not fit a node: the field take takes is not in the packet, a value is not of the type of the variable it is written into
graph_cycle_invalid a back link goes past the node of a loop
graph_face_port_used a port through which a link crosses the border of a group is being taken off its face (process.group.face); the link is removed first
graph_node_not_supported the kind of a node is unknown
graph_no_entry the process has no entry point, or it points to a node that does not exist
graph_condition_type a condition compares as a number a value that is not a number
graph_iteration_limit a loop went over graph.max_iterations or graph.max_loop_ms
graph_queue_overflow more than graph.queue_depth pieces of data piled up at an input of a node
generation_incomplete the documents of a process are not written as one generation: the writing broke off
file_invalid a file given to a process is not accepted: a part is missing or came twice, the file is larger than graph.file_max_bytes, the name does not fit, or the run it is given to is not going (File formats, 16.4)
file_not_found the process has no file the reference names
process_running the process is going now: it cannot be saved until the end of the run
process_in_use a program is asked to be deleted, and another program calls it
process_changed the process was saved after the checkpoint: a run cannot go on in another version
program_off the program is off: a run begins only in a program that is on
ask_closed the question is already closed: it was answered or the run ended
run_not_found there is no run with such a run_id; the event has no failed run for process.run.retry to repeat — this refusal is told in its own words (message_key — graph.retry.none): there is nothing to repeat, a stopped run is resumed or begun anew
resume_not_allowed this run cannot be resumed
run_active a run with such a run_id is going now: there is nothing to resume, and it does not begin a second time beside itself
module_non_idempotent_unknown the outcome of a step of a module is unknown, and a repetition is not harmless: the person must confirm

Modules — functions/modules/src/codes.rs:

Table 4 — Error codes of the function of modules

Code When
module_invalid the manifest of a module cannot be read or does not pass the check; in an export, a link inside a module
secret_invalid the name of a secret of a module is not capital letters, digits and _, or the value is not one line
module_file_refused the path of a file of a module leads out of its folder, to the secrets or the environment, the file cannot be read as text or is too large
module_exists a module with such an id already exists
module_needs_environment the module needs the Python environment of the process, and there is none
module_environment_conflict the modules of a process ask for different versions of one dependency
module_python_not_found none of the programs of modules.python_candidates starts: there is nothing to make an environment with or to start a module in Python
module_uv_not_found the uv program named by the setting modules.uv is not there: there is nothing to make the environment of a process with
module_install_failed the Python environment of a process could not be made or filled: uv venv or uv pip install ended with an error
module_files_failed the files of a module or an environment could not be read or written on disk: no room, no rights
module_gpu_full the video memory the module needs is held by modules busy with a step, and it did not free up within the time of the step
module_state_in_use the memory of a node is asked to be reset while its node is served by a module that is up: it would save what it holds over it
module_in_use a module is asked to be deleted, and a program holds it or it is up now
module_not_found there is no module with such an id among those installed
module_model_missing the neural network chosen by a parameter of a node or the default of the manifest is not in the folder of networks: the step does not reach the module, a service does not come up; data.names — the missing ones, <kind>/<name>
model_in_use a neural network is asked to be deleted, and an installed module takes it by default; data.names — the modules
model_not_found there is no neural network of such a kind and name in the folder of networks
module_failed the step failed in the work of the module itself: the module reported a refusal itself or an error happened in its code; the manifest is in order. The cause the module named by its own code is in data.module_error_code (Methods of modules, 1.2)
module_not_ready a step was sent to the module before it answered init — the order of the protocol is broken
transport_overflow the module writes to stdout more than fits: a line too long or extra answers
artifact_invalid an artifact in the answer of a module is described out of form or lies outside the work folder
artifact_missing the file named as an artifact is not there
artifact_too_large the artifact is larger than modules.artifact_max_bytes

The contract of the function of modules — core/protocol/src/contracts/modules/codes.rs, texts at the function of modules; the function of the graph gives or reads these codes too: when a process finds a recorded module different, when a stop catches a step that was still waiting to begin, and when by the code of a refusal it decides whether the outcome of a step is known:

Table 5 — Error codes of the contract of the function of modules

Code When
module_changed the files of a module did not match the print written in the process or the export
module_missing the module a process stands on is not among those installed
module_version_mismatch the installed version of a module is not the one written in the process
module_cancelled the step of a module is cancelled: the run or the group was stopped while the step went or still waited to begin
module_timeout the step did not fit into the timeout_ms of the manifest; the outcome of the step is unknown
module_process_lost the program of the module closed or answered outside the protocol in the middle of a step; the outcome of the step is unknown
module_memory_limit the program of the module took the modules past the limit of memory the person gave, and Linux stopped it in the middle of a step; the outcome of the step is unknown
model_exists a neural network is being put into the folder of networks under a name already taken in its kind; the existing one is not replaced; the function of sources says so before the download begins

Settings — functions/settings/src/codes.rs:

Table 6 — Error codes of the function of settings

Code When
settings_unknown_key there is no such key in any schema
settings_invalid the schema of an owner does not pass the check, or a file of a level is spoiled
settings_invalid_level the level is named wrongly, or it lacks a process_id
settings_invalid_owner the schema belongs to another owner than the one registering it
settings_secret_rejected the name of the key holds a word that looks like a secret
settings_value_invalid a value in a file of a level does not pass the schema and is not used (an event)

The pulpit — functions/canvas/src/codes.rs:

Table 7 — Error codes of the function of the pulpit

Code When
canvas_invalid the document of the pulpit does not pass the check
canvas_image_invalid a file is not accepted as a picture of the pulpit: name, kind, content or size (File formats, 7.2)
canvas_image_not_found there is no picture with such a name in the folder of the pulpit
canvas_files_failed the files of the pulpit could not be read, written or copied
canvas_look_invalid a look of an element is not accepted: the document ogas.look/1, pictures or size (File formats, 7.2)
canvas_look_not_found the pulpit has no look with such a name
canvas_piece_not_found there is no piece of interface with such a name in the library

Observation — functions/observe/src/codes.rs:

Table 8 — Error codes of the function of observation

Code When
observe_unknown_problem there is no problem with such an id

Languages — functions/i18n/src/codes.rs:

Table 9 — Error codes of the function of languages

Code When
i18n_key_missing there is no text for a key in the dictionaries (an event)

Sources — functions/sources/src/codes.rs:

Table 10 — Error codes of the function of sources

Code When
source_unknown there is no source with such a name in the settings
source_unreachable the source did not answer: no network, the site does not answer, its certificate does not check, or the answer did not come within sources.answer_s
source_answer_bad the source answered the wrong thing: not JSON, a showcase of another format, a thing without a required field, a file without a size or a checksum
source_item_unknown the source has no such thing
source_gated the source gives the thing only after signing in or agreeing to terms on its site; the platform keeps no keys
source_too_big the download is larger than sources.max_gib
source_no_room there is less room on disk than the download weighs
source_file_bad the name or path of a file from the source leads out of the folder of the thing, is hidden, or is not named by the thing
source_hash_mismatch the checksum of a downloaded file is not the one the source named; the file is deleted
source_download_failed the file did not download: a break, an answer with an error, the file is larger than declared, or the download stood longer than sources.stall_s
source_signature_bad the showcase of ogas.space has no signature of the site key, or it does not hold; nothing of it is shown
download_not_found there is no download going with such an id

The workshop — functions/ui/src/codes.rs:

Table 11 — Error codes of the function of the workshop

Code When
method_not_allowed the window calls a method closed to it
ui_font_unavailable the font file cannot be read, is of the wrong kind, or is over the limit
ui_window_unauthorized the window did not present the session token
ui_window_disconnected the window program is not connected to the platform: the connection is not made or is closed; given by the window program itself
ui_window_no_answer the platform did not answer the window program in time; given by the window program itself
ui_window_open_refused the window program does not open a file of a process with a Windows program: such a kind of file is run, not shown — a program, a script, a shortcut; given by the window program, and the file can be shown in its folder (Protection, 3.13)
ui_window_file_failed the window program could not take a file of a process from the function of the graph, put its copy, or pass it to Windows: the name is not simple, the file is larger than the window copies, there is no room, or Explorer did not start
ui_window_path_unknown Linux does not reach the file at the path of Windows the dialog or the Explorer named
ui_window_shortcut_failed the window program could not make or take away a shortcut of Windows
ui_window_wsl_config_failed the window program could not write .wslconfig

The door for programs — functions/gate/src/codes.rs:

Table 12 — Error codes of the function of the door

Code When
gate_unauthorized the first message of a connection is not gate.hello with the key of the door
gate_busy as many programs have come in as gate.clients lets in
gate_not_allowed a program calls a method that cannot be called through the door
gate_no_key there is no key of the door, and making one failed

The assistant — functions/assistant/src/codes.rs:

Table 13 — Error codes of the function of the assistant

Code When
assistant_no_network the network of the assistant is not chosen
assistant_not_a_network the module named as the network is not a network of the assistant
assistant_task_not_found there is no task with such an id
assistant_task_busy the task is working, and it is asked for something new

The profile — functions/profile/src/codes.rs:

Table 14 — Error codes of the function of the profile

Code When
profile_none there is no profile on this computer
profile_exists there is a profile on this computer already
key_code_bad the code does not add up, or it is the key of another profile; neither the code nor a key file is given
key_password_bad the password does not open the key file
key_file_bad the file is not ogas.key/1, cannot be read or written
site_unreachable the site did not answer or answered with an error
site_signature_bad a file of the site without a signature of the site key, with one that does not hold, or not of its format; nothing of it is taken
parcel_refused the site did not take the parcel; its code is in the details
parcel_bad the fields of the parcel are not those its kind names
parcel_too_large the parcel or its things are over the limits
parcel_not_found there is no such unsent parcel
thing_not_found there is no program, module or piece offered
thing_binary a file in a thing is neither text nor a picture
thing_no_lock a module not in Python has no Cargo.lock