Status Codes

0 — ok (success)

The operation completed. Code 0 appears as an ok completion rather than an error headline.


1 — out of range (runtime)

A number or index crossed an ordered bound. Use the reported value and any bound detail to choose an in-range value.


2 — wrong type (runtime)

A value has the wrong kind for this operation. Pass the kind named by the detail line.


3 — bad value (runtime)

The kind is acceptable, but that particular value is invalid in this domain. Argument details identify the rejected position.


4 — capacity exceeded (runtime)

A fixed table, buffer, image, or other bounded store is full. Release or clear entries, or reduce what is being stored.


5 — overflow (runtime)

A result or stack would exceed its representable capacity. Reduce the input or the amount of nested work.


6 — underflow (runtime)

An operation needed a value that was not available, commonly on a stack. Supply the expected values or fix the calling shape.


7 — not found (runtime)

A requested name, field, or item does not exist. Check the reported name or define it first.


8 — bad source (language)

Source could not be read, parsed, or compiled. Fix the token identified by the message and caret.


9 — unsupported (device)

The operation or value is not supported by the active firmware or profile. Use a supported operation or a build that provides it.


10 — interrupted (runtime)

Evaluation was deliberately interrupted and is not catchable. At the prompt this is interrupted followed by ok; while restored boot code is running it is error: interrupted (10).


11 — corrupt data (device)

Persisted or incoming data failed validation: a bad magic number, a bad checksum, or a bad length. The data is damaged, so restore, wipe, rebuild, or reacquire it instead of using a partial result. An image the device refuses because another release wrote it is not damaged and reports other release instead.


12 — i/o failed (device)

A peripheral or storage operation failed. Check power, wiring, media, and device state, then retry when safe.


13 — not saved (persistence)

Volatile state cannot be made durable. A rejected store is an error.

At the prompt, a bare save or save: stores slots holding handle values as nil and reports notice 100 instead. It still refuses with this code when the value cannot be made nil safely: a live Bluetooth connection, a slot installed in library mode, or more handle-bound slots than the device can hold at once. Rebind the named slot and retry.

Inside a program, save: does not reach this check at all — see code 26 .


14 — bad handle (resource)

A handle is closed, stale, or belongs to the wrong driver. Reopen the resource and pass a live handle of the expected kind.


15 — no network (network)

The network interface is disconnected. Reconnect it before retrying the operation.


16 — timed out (network)

A network operation did not complete in time. Check reachability and retry according to the application.


17 — dns failed (network)

A hostname could not be resolved. Check the hostname, DNS service, and network connection.


18 — refused (network)

The remote endpoint rejected the connection. Check the address, port, and server state.


19 — too large (network)

A network payload or response exceeds the supported bound. Reduce or split it.


20 — bad protocol (network)

A peer returned malformed or unexpected protocol data. Check that the endpoint and protocol agree.


21 — ble not ready (bluetooth)

The required Bluetooth state has not been established. Enable or configure the prerequisite state first.


22 — ble busy (bluetooth)

Another Bluetooth procedure is active or stopping. Wait for it to finish, or stop it before retrying.


23 — ble timed out (bluetooth)

A Bluetooth operation did not finish in time. Check range and peer state, then reconnect or retry.


24 — ble disconnected (bluetooth)

The Bluetooth peer disconnected. Reconnect before using peer-owned state.


25 — busy (resource)

A valid exclusive resource is already claimed. Reuse or close its existing handle, or select a different resource.


26 — prompt only (persistence)

This operation replaces the running program; issue it as its own complete prompt form. save, restore, and dangerous.wipe swap the image the running program is executing from, so they refuse while any word, event body, or boot routine is running. Catchable with attempt/rescue. Close the form first and run the word on its own.


27 — other release (persistence)

The saved image was written by a different Frothy release. The image is not damaged and your board is healthy: a release that adds or changes a word changes the shape of the image, and the device refuses an image it cannot read as its own. You see this at boot, when the device finds a saved image it cannot load, and from restore. Save again to write an image this release can read.


Notice Codes

A notice reports something worth saying about a form that succeeded. Notice codes start at 100 so they can never be confused with a status code; they never appear as an error and cannot be caught.

100 — saved; handle values stored as nil (persistence)

save at the prompt kept your program running and wrote everything the image can carry. The slots named in the detail line hold handles — live connections to hardware — and no saved image can carry those, so they were stored as nil. Open those resources in boot and a reboot brings them back.