---
title: "Error codes"
description: "Every error code the Aontu engine can raise — 111 codes across 7 classes, with the class that decides your next move."
source: "https://aontu.dev/errors/"
---

# Error codes

Every error Aontu raises carries a **code**, and every code has a **class**. The class says what kind of thing went wrong, which is what decides your next move.

This is the registry itself, not a description of it: [`test/spec/errcodes.tsv`](https://github.com/aontu-lang/aontu/blob/main/test/spec/errcodes.tsv) is a shared contract both implementations execute, and each asserts set equality against — a code in one engine and not the file fails that engine's suite. Codes are append-only; renames are forbidden.

Machine-readable: [`/errors.json`](https://aontu.dev/errors.json), or `/errors/<code>.json` for one.

## `parse` 24

the text is not a document — fix the syntax at the site the frame points at

-   [`decimal_syntax`](https://aontu.dev/errors/decimal_syntax)
-   [`each_data`](https://aontu.dev/errors/each_data)
-   [`elided_value`](https://aontu.dev/errors/elided_value)
-   [`filter_data`](https://aontu.dev/errors/filter_data)
-   [`func_arity`](https://aontu.dev/errors/func_arity)
-   [`id_name`](https://aontu.dev/errors/id_name)
-   [`id_spread`](https://aontu.dev/errors/id_spread)
-   [`include_denied`](https://aontu.dev/errors/include_denied)
-   [`incomplete_expression`](https://aontu.dev/errors/incomplete_expression)
-   [`merge_conflict`](https://aontu.dev/errors/merge_conflict)
-   [`module_integrity`](https://aontu.dev/errors/module_integrity)
-   [`module_missing`](https://aontu.dev/errors/module_missing)
-   [`negative`](https://aontu.dev/errors/negative)
-   [`not_number`](https://aontu.dev/errors/not_number)
-   [`pack_data`](https://aontu.dev/errors/pack_data)
-   [`pack_key`](https://aontu.dev/errors/pack_key)
-   [`parse`](https://aontu.dev/errors/parse)
-   [`parse_bad_src`](https://aontu.dev/errors/parse_bad_src)
-   [`parse_unknown`](https://aontu.dev/errors/parse_unknown)
-   [`patch_assignment`](https://aontu.dev/errors/patch_assignment)
-   [`pipe_target`](https://aontu.dev/errors/pipe_target)
-   [`refer_address`](https://aontu.dev/errors/refer_address)
-   [`syntax`](https://aontu.dev/errors/syntax)
-   [`unify_no_src`](https://aontu.dev/errors/unify_no_src)

## `conflict` 45

two values cannot both hold — one of them is wrong: `aontu why` names both and where they were written

-   [`|:empty`](https://aontu.dev/errors/~7c~3aempty)
-   [`|:empty-dist`](https://aontu.dev/errors/~7c~3aempty-dist)
-   [`aggregate_data`](https://aontu.dev/errors/aggregate_data)
-   [`aggregate_empty`](https://aontu.dev/errors/aggregate_empty)
-   [`arg`](https://aontu.dev/errors/arg)
-   [`close`](https://aontu.dev/errors/close)
-   [`closed`](https://aontu.dev/errors/closed)
-   [`constraint`](https://aontu.dev/errors/constraint)
-   [`constraint_pattern`](https://aontu.dev/errors/constraint_pattern)
-   [`decimal_budget`](https://aontu.dev/errors/decimal_budget)
-   [`divide_by_zero`](https://aontu.dev/errors/divide_by_zero)
-   [`exact_float_mix`](https://aontu.dev/errors/exact_float_mix)
-   [`float_overflow`](https://aontu.dev/errors/float_overflow)
-   [`func`](https://aontu.dev/errors/func)
-   [`func:`](https://aontu.dev/errors/func~3a) family
-   [`id_conflict`](https://aontu.dev/errors/id_conflict)
-   [`inexact_divide`](https://aontu.dev/errors/inexact_divide)
-   [`inexact_integer_sum`](https://aontu.dev/errors/inexact_integer_sum)
-   [`invalid-arg`](https://aontu.dev/errors/invalid-arg)
-   [`key_level`](https://aontu.dev/errors/key_level)
-   [`list`](https://aontu.dev/errors/list)
-   [`literal_nil`](https://aontu.dev/errors/literal_nil)
-   [`lossy_integer_literal`](https://aontu.dev/errors/lossy_integer_literal)
-   [`make`](https://aontu.dev/errors/make)
-   [`map`](https://aontu.dev/errors/map)
-   [`match_none`](https://aontu.dev/errors/match_none)
-   [`must`](https://aontu.dev/errors/must)
-   [`nil_gen`](https://aontu.dev/errors/nil_gen)
-   [`no_first_arg`](https://aontu.dev/errors/no_first_arg)
-   [`no_scalar_unify`](https://aontu.dev/errors/no_scalar_unify)
-   [`not-scalar-type`](https://aontu.dev/errors/not-scalar-type)
-   [`op`](https://aontu.dev/errors/op)
-   [`op:`](https://aontu.dev/errors/op~3a) family
-   [`op[`](https://aontu.dev/errors/op~5b) family
-   [`operate`](https://aontu.dev/errors/operate)
-   [`pick_key`](https://aontu.dev/errors/pick_key)
-   [`place_pair`](https://aontu.dev/errors/place_pair)
-   [`relation_cycle`](https://aontu.dev/errors/relation_cycle)
-   [`relation_inverse_missing`](https://aontu.dev/errors/relation_inverse_missing)
-   [`relation_target_unmet`](https://aontu.dev/errors/relation_target_unmet)
-   [`resolve`](https://aontu.dev/errors/resolve)
-   [`scalar_kind`](https://aontu.dev/errors/scalar_kind)
-   [`scalar_value`](https://aontu.dev/errors/scalar_value)
-   [`scalar-type`](https://aontu.dev/errors/scalar-type)
-   [`unite`](https://aontu.dev/errors/unite)

## `incomplete` 10

nothing contradicts, but the value is not concrete — supply what is missing, or accept it with `--partial`

-   [`conjunct`](https://aontu.dev/errors/conjunct)
-   [`disjunct_no_gen`](https://aontu.dev/errors/disjunct_no_gen)
-   [`listval_no_gen`](https://aontu.dev/errors/listval_no_gen)
-   [`listval_required`](https://aontu.dev/errors/listval_required)
-   [`listval_spread_required`](https://aontu.dev/errors/listval_spread_required)
-   [`mapval_no_gen`](https://aontu.dev/errors/mapval_no_gen)
-   [`mapval_required`](https://aontu.dev/errors/mapval_required)
-   [`mapval_spread_required`](https://aontu.dev/errors/mapval_spread_required)
-   [`no_gen`](https://aontu.dev/errors/no_gen)
-   [`required_listelem`](https://aontu.dev/errors/required_listelem)

## `reference` 13

a path names nothing — check the spelling; `aontu get $ --keys` lists what is there

-   [`invalid_var_kind`](https://aontu.dev/errors/invalid_var_kind)
-   [`multisource_not_found`](https://aontu.dev/errors/multisource_not_found)
-   [`no_path`](https://aontu.dev/errors/no_path)
-   [`patch_ambiguous`](https://aontu.dev/errors/patch_ambiguous)
-   [`patch_not_editable`](https://aontu.dev/errors/patch_not_editable)
-   [`path_cycle`](https://aontu.dev/errors/path_cycle)
-   [`ref`](https://aontu.dev/errors/ref)
-   [`ref[`](https://aontu.dev/errors/ref~5b) family
-   [`refer_unresolved`](https://aontu.dev/errors/refer_unresolved)
-   [`unknown_function`](https://aontu.dev/errors/unknown_function)
-   [`unknown_var`](https://aontu.dev/errors/unknown_var)
-   [`var`](https://aontu.dev/errors/var)
-   [`var[`](https://aontu.dev/errors/var~5b) family

## `compat` 11

a change breaks an earlier version — that is `aontu subsume` / `aontu breaking` talking: widen the change or version it

-   [`compat_default_changed`](https://aontu.dev/errors/compat_default_changed)
-   [`compat_marks_changed`](https://aontu.dev/errors/compat_marks_changed)
-   [`compat_narrowed`](https://aontu.dev/errors/compat_narrowed)
-   [`compat_required_added`](https://aontu.dev/errors/compat_required_added)
-   [`deprecated`](https://aontu.dev/errors/deprecated)
-   [`pref_not_instance`](https://aontu.dev/errors/pref_not_instance)
-   [`sub_default_indeterminate`](https://aontu.dev/errors/sub_default_indeterminate)
-   [`sub_disjunct_distribution`](https://aontu.dev/errors/sub_disjunct_distribution)
-   [`sub_evaluate_only`](https://aontu.dev/errors/sub_evaluate_only)
-   [`sub_path_dependent_spread`](https://aontu.dev/errors/sub_path_dependent_spread)
-   [`sub_unresolved`](https://aontu.dev/errors/sub_unresolved)

## `budget` 4

evaluation hit a deterministic limit — usually a cycle; simplify, or raise the budget deliberately

-   [`budget_passes`](https://aontu.dev/errors/budget_passes)
-   [`max_depth`](https://aontu.dev/errors/max_depth)
-   [`module_depth`](https://aontu.dev/errors/module_depth)
-   [`unify_cycle`](https://aontu.dev/errors/unify_cycle)

## `internal` 4

the engine surprised itself — a bug worth reporting

-   [`internal`](https://aontu.dev/errors/internal)
-   [`patch_span_mismatch`](https://aontu.dev/errors/patch_span_mismatch)
-   [`unify_no_res`](https://aontu.dev/errors/unify_no_res)
-   [`unknown_op`](https://aontu.dev/errors/unknown_op)
