[Reference](/docs) · errors

# Compiler errors

Every rule the compiler can report, 661 in all, grouped by part of the language. Each error the compiler prints ends with a `rule` line naming one, and that rule's page shows an example and the fix.

-   [Project layout and modules](#area-1)
-   [Values and types](#area-2)
-   [Logic](#area-3)
-   [Failures](#area-4)
-   [Data](#area-5)
-   [Reads and writes](#area-6)
-   [HTTP](#area-7)
-   [Identity](#area-8)
-   [Policy](#area-9)
-   [Configuration and time](#area-10)
-   [External services](#area-11)
-   [Jobs and events](#area-12)
-   [Testing](#area-13)
-   [Tooling](#area-14)
-   [Built-in services](#area-16)
-   [Records and manifest](#area-18)
-   [Standard library](#area-19)
-   [AI](#area-21)

Find a rule

## Project layout and modules

-   [decline.no\_reason](/docs/errors/decline.no_reason)
    
    Decline gives no reason
    
-   [decline.not\_declinable](/docs/errors/decline.not_declinable)
    
    Decline names a rule that can't be declined
    
-   [decline.unused](/docs/errors/decline.unused)
    
    Decline's rule no longer fires on its declaration
    
-   [import.duplicate](/docs/errors/import.duplicate)
    
    Name or folder imported twice
    
-   [import.missing](/docs/errors/import.missing)
    
    Name used without its import
    
-   [import.unknown](/docs/errors/import.unknown)
    
    Import names nothing in its folder
    
-   [import.unneeded](/docs/errors/import.unneeded)
    
    Import of a name the file sees without one
    
-   [import.unused](/docs/errors/import.unused)
    
    Imported name the file does not use
    
-   [layout.call\_direction](/docs/errors/layout.call_direction)
    
    Shared code depends on a domain
    
-   [layout.file\_name\_mismatch](/docs/errors/layout.file_name_mismatch)
    
    File name does not match its declaration
    
-   [layout.promotion\_required](/docs/errors/layout.promotion_required)
    
    Declaration is used beyond the file that holds it
    
-   [layout.route\_prefix\_mismatch](/docs/errors/layout.route_prefix_mismatch)
    
    Route group prefix does not match its file name
    
-   [layout.test\_without\_subject](/docs/errors/layout.test_without_subject)
    
    Test file has no subject beside it
    
-   [layout.unknown\_location](/docs/errors/layout.unknown_location)
    
    Jadpo file is outside the fixed layout
    
-   [layout.unused\_declaration](/docs/errors/layout.unused_declaration)
    
    Shared declaration is not used
    
-   [layout.wrong\_folder](/docs/errors/layout.wrong_folder)
    
    Declaration is in the wrong folder
    
-   [library.similar\_exists](/docs/errors/library.similar_exists)
    
    A library function already does the same
    
-   [naming.folded\_collision](/docs/errors/naming.folded_collision)
    
    Two names fold to the same file name
    
-   [naming.generic\_name](/docs/errors/naming.generic_name)
    
    Domain or library has a generic name
    
-   [naming.round\_trip](/docs/errors/naming.round_trip)
    
    Name does not survive conversion to its file name
    
-   [semantic.duplicate\_declaration](/docs/errors/semantic.duplicate_declaration)
    
    Name is declared more than once
    
-   [semantic.name\_case](/docs/errors/semantic.name_case)
    
    Name has the wrong case for its kind
    
-   [semantic.not\_callable](/docs/errors/semantic.not_callable)
    
    Name cannot be called
    
-   [semantic.own\_domain\_qualification](/docs/errors/semantic.own_domain_qualification)
    
    Own-domain call is qualified
    
-   [semantic.standard\_namespace\_reserved](/docs/errors/semantic.standard_namespace_reserved)
    
    Name belongs to a standard-library namespace
    
-   [semantic.standard\_operation\_qualification](/docs/errors/semantic.standard_operation_qualification)
    
    Standard-library operation is called without its namespace
    
-   [semantic.unknown\_callee](/docs/errors/semantic.unknown_callee)
    
    Called name is not declared
    
-   [semantic.unknown\_name](/docs/errors/semantic.unknown_name)
    
    Name is not declared
    
-   [semantic.wrong\_name\_kind](/docs/errors/semantic.wrong_name_kind)
    
    Name is the wrong kind of declaration here
    
-   [syntax.comment\_style](/docs/errors/syntax.comment_style)
    
    Comment written with `#` or `/* */`
    
-   [syntax.expected\_declaration](/docs/errors/syntax.expected_declaration)
    
    Expected a declaration
    
-   [syntax.expected\_name](/docs/errors/syntax.expected_name)
    
    Expected a name
    
-   [syntax.export\_keyword](/docs/errors/syntax.export_keyword)
    
    Declaration marked `export` or `pub`
    
-   [syntax.import\_statement](/docs/errors/syntax.import_statement)
    
    Import written in another language's form
    
-   [syntax.invalid\_escape](/docs/errors/syntax.invalid_escape)
    
    Unknown escape in a string
    
-   [syntax.unexpected\_character](/docs/errors/syntax.unexpected_character)
    
    Character is not part of Jadpo
    
-   [syntax.unexpected\_token](/docs/errors/syntax.unexpected_token)
    
    Something else was expected here
    
-   [syntax.unterminated\_string](/docs/errors/syntax.unterminated_string)
    
    String is not closed
    
-   [toolchain.empty\_project](/docs/errors/toolchain.empty_project)
    
    Project declares nothing
    
-   [toolchain.version\_invalid](/docs/errors/toolchain.version_invalid)
    
    Application's `jadpo:` is not a major and minor version as text
    
-   [toolchain.version\_newer](/docs/errors/toolchain.version_newer)
    
    Project is on a later Jadpo line
    
-   [toolchain.version\_older](/docs/errors/toolchain.version_older)
    
    Project is on an earlier Jadpo line
    
-   [visibility.private\_cross\_domain](/docs/errors/visibility.private_cross_domain)
    
    Another domain uses a private declaration
    
-   [visibility.public\_not\_allowed](/docs/errors/visibility.public_not_allowed)
    
    Declaration can't be public
    
-   [visibility.public\_reaches\_private](/docs/errors/visibility.public_reaches_private)
    
    Public declaration's signature names one that isn't public
    
-   [visibility.public\_unused](/docs/errors/visibility.public_unused)
    
    Public declaration no other domain uses
    

## Values and types

-   [syntax.collection\_type](/docs/errors/syntax.collection_type)
    
    Collection type written in another language's form
    
-   [syntax.new\_keyword](/docs/errors/syntax.new_keyword)
    
    Value created with `new`
    
-   [syntax.null\_coalescing](/docs/errors/syntax.null_coalescing)
    
    Default for a missing value written with `??`
    
-   [syntax.nullable\_type](/docs/errors/syntax.nullable_type)
    
    Nullable type written in another language's form
    
-   [syntax.optional\_chaining](/docs/errors/syntax.optional_chaining)
    
    Field of a missing value read with `?.`
    
-   [syntax.string\_quotes](/docs/errors/syntax.string_quotes)
    
    String in single quotes or backticks
    
-   [syntax.type\_block\_required](/docs/errors/syntax.type_block_required)
    
    Type has no block
    
-   [syntax.type\_keyword](/docs/errors/syntax.type_keyword)
    
    Type declared with `struct`, `interface` or `enum`
    
-   [syntax.type\_parent\_required](/docs/errors/syntax.type_parent_required)
    
    Type has no base
    
-   [syntax.variable\_type\_required](/docs/errors/syntax.variable_type_required)
    
    Variable has no type
    
-   [type.absent\_field](/docs/errors/type.absent_field)
    
    Omitted or optional field is not present
    
-   [type.base\_outside\_declaration](/docs/errors/type.base_outside_declaration)
    
    Base is used outside a type declaration
    
-   [type.constraint\_base](/docs/errors/type.constraint_base)
    
    Constraint does not fit the type's base
    
-   [type.constraint\_contradiction](/docs/errors/type.constraint_contradiction)
    
    Constraints contradict each other
    
-   [type.constraint\_loosened](/docs/errors/type.constraint_loosened)
    
    Refinement loosens a rule it inherits
    
-   [type.constraint\_repeated](/docs/errors/type.constraint_repeated)
    
    Constraint is given twice
    
-   [type.constructor\_argument\_count](/docs/errors/type.constructor_argument_count)
    
    Constructor is not given exactly one value
    
-   [type.constructor\_input](/docs/errors/type.constructor_input)
    
    Value cannot be converted to this type
    
-   [type.copy\_clash](/docs/errors/type.copy_clash)
    
    Copied field would replace another field
    
-   [type.copy\_cycle](/docs/errors/type.copy_cycle)
    
    Type includes its own fields
    
-   [type.copy\_into\_input](/docs/errors/type.copy_into_input)
    
    Input copies every field of another type
    
-   [type.decimal\_scale\_required](/docs/errors/type.decimal_scale_required)
    
    Decimal type has no scale
    
-   [type.duplicate\_field](/docs/errors/type.duplicate_field)
    
    Field is given twice
    
-   [type.duplicate\_variant](/docs/errors/type.duplicate_variant)
    
    Enum variant is declared twice
    
-   [type.duplicate\_variant\_field](/docs/errors/type.duplicate_variant_field)
    
    Variant field is given twice
    
-   [type.enum\_empty](/docs/errors/type.enum_empty)
    
    Enum declares no variants
    
-   [type.enum\_label](/docs/errors/type.enum_label)
    
    Enum variant is given a label or a value
    
-   [type.field\_on\_non\_record](/docs/errors/type.field_on_non_record)
    
    Field is read from a value without fields
    
-   [type.field\_unproved](/docs/errors/type.field_unproved)
    
    Object field value may break the field's rules
    
-   [type.foreign\_type](/docs/errors/type.foreign_type)
    
    Type named as another language names it
    
-   [type.foreign\_value](/docs/errors/type.foreign_value)
    
    Value written as another language writes it
    
-   [type.invalid\_literal](/docs/errors/type.invalid_literal)
    
    Literal breaks its type's rules
    
-   [type.invalid\_pattern](/docs/errors/type.invalid_pattern)
    
    Pattern is not a supported regular expression
    
-   [type.map\_key\_boundary](/docs/errors/type.map_key_boundary)
    
    Map key at a boundary isn't text
    
-   [type.mismatch](/docs/errors/type.mismatch)
    
    Value has the wrong type
    
-   [type.missing\_field](/docs/errors/type.missing_field)
    
    Object is missing a field
    
-   [type.missing\_variant\_field](/docs/errors/type.missing_variant_field)
    
    Variant is missing a field
    
-   [type.not\_a\_type](/docs/errors/type.not_a_type)
    
    Field's type is written as a value or a call
    
-   [type.not\_record](/docs/errors/type.not_record)
    
    Braces build a type that has no fields
    
-   [type.nullable\_selection](/docs/errors/type.nullable_selection)
    
    Field is read from a value that may be none
    
-   [type.optional\_outside\_input](/docs/errors/type.optional_outside_input)
    
    Optional or default field outside an Input
    
-   [type.primitive\_signature](/docs/errors/type.primitive_signature)
    
    Signature uses a built-in type directly
    
-   [type.redundant\_nullability](/docs/errors/type.redundant_nullability)
    
    Type is already nullable
    
-   [type.reserved\_field\_name](/docs/errors/type.reserved_field_name)
    
    Field uses a reserved name
    
-   [type.rule\_name\_taken](/docs/errors/type.rule_name_taken)
    
    Rule is named like a field, another rule or `invalid`
    
-   [type.rule\_not\_condition](/docs/errors/type.rule_not_condition)
    
    Rule's condition isn't a `Bool`
    
-   [type.rule\_outside\_fields](/docs/errors/type.rule_outside_fields)
    
    Rule reads something besides its type's fields
    
-   [type.rule\_outside\_object](/docs/errors/type.rule_outside_object)
    
    Rule is written outside an object type
    
-   [type.setting\_value](/docs/errors/type.setting_value)
    
    Setting has the wrong kind of value
    
-   [type.sibling\_mismatch](/docs/errors/type.sibling_mismatch)
    
    Field type is used for a sibling field type
    
-   [type.type\_argument\_count](/docs/errors/type.type_argument_count)
    
    Type has the wrong number of type arguments
    
-   [type.unknown\_enum\_variant](/docs/errors/type.unknown_enum_variant)
    
    Enum has no such variant
    
-   [type.unknown\_field](/docs/errors/type.unknown_field)
    
    Type has no such field
    
-   [type.unknown\_setting](/docs/errors/type.unknown_setting)
    
    Setting is not one Jadpo knows
    
-   [type.unknown\_variant\_field](/docs/errors/type.unknown_variant_field)
    
    Variant has no such field
    

## Logic

-   [constant.cycle](/docs/errors/constant.cycle)
    
    Constant's value depends on itself
    
-   [constant.similar\_exists](/docs/errors/constant.similar_exists)
    
    Another constant of the same type holds the same value
    
-   [constant.value\_not\_fixed](/docs/errors/constant.value_not_fixed)
    
    Constant's value is only known while the app runs
    
-   [effect.call\_in\_loop](/docs/errors/effect.call_in_loop)
    
    Outside call inside a `for` loop
    
-   [effect.function\_calls\_action](/docs/errors/effect.function_calls_action)
    
    Function calls an action or query
    
-   [effect.function\_persistence](/docs/errors/effect.function_persistence)
    
    Function reads or writes stored data
    
-   [effect.recursive\_action](/docs/errors/effect.recursive_action)
    
    Action is part of a call cycle
    
-   [failure.attempt\_infallible](/docs/errors/failure.attempt_infallible)
    
    Attempt is used on something that cannot fail
    
-   [failure.attempt\_required](/docs/errors/failure.attempt_required)
    
    Call that can fail is not handled
    
-   [failure.outcome\_duplicate\_arm](/docs/errors/failure.outcome_duplicate_arm)
    
    Outcome match handles a failure twice
    
-   [failure.outcome\_infallible](/docs/errors/failure.outcome_infallible)
    
    Outcome match is on a call that cannot fail
    
-   [failure.outcome\_missing\_arm](/docs/errors/failure.outcome_missing_arm)
    
    Outcome match does not handle every failure
    
-   [failure.outcome\_pattern\_invalid](/docs/errors/failure.outcome_pattern_invalid)
    
    Outcome match arm has a pattern for values
    
-   [failure.outcome\_subject\_required](/docs/errors/failure.outcome_subject_required)
    
    Outcome match is not on a call
    
-   [failure.outcome\_success\_duplicate](/docs/errors/failure.outcome_success_duplicate)
    
    Outcome match repeats its success arm
    
-   [failure.outcome\_success\_missing](/docs/errors/failure.outcome_success_missing)
    
    Outcome match has no success arm
    
-   [failure.outcome\_success\_value\_required](/docs/errors/failure.outcome_success_value_required)
    
    Success arm passes on a failure
    
-   [failure.outcome\_unknown\_arm](/docs/errors/failure.outcome_unknown_arm)
    
    Outcome arm names a failure the call cannot produce
    
-   [failure.outcome\_wildcard](/docs/errors/failure.outcome_wildcard)
    
    Outcome match uses a wildcard
    
-   [failure.propagate\_placement](/docs/errors/failure.propagate_placement)
    
    Propagate is used outside a failure arm
    
-   [failure.reject\_placement](/docs/errors/failure.reject_placement)
    
    Reject is used inside an expression
    
-   [semantic.missing\_return](/docs/errors/semantic.missing_return)
    
    Callable can end without returning its result
    
-   [semantic.unreachable\_code](/docs/errors/semantic.unreachable_code)
    
    Code can never run
    
-   [semantic.unused\_result](/docs/errors/semantic.unused_result)
    
    Value is computed and thrown away
    
-   [semantic.unused\_variable](/docs/errors/semantic.unused_variable)
    
    Variable is never used
    
-   [syntax.async\_await](/docs/errors/syntax.async_await)
    
    Code marked `async` or `await`
    
-   [syntax.attempt\_placement](/docs/errors/syntax.attempt_placement)
    
    Attempt is used inside an expression
    
-   [syntax.colon\_required](/docs/errors/syntax.colon_required)
    
    Member has no colon before its value
    
-   [syntax.condition\_brackets](/docs/errors/syntax.condition_brackets)
    
    Condition is not in brackets
    
-   [syntax.else\_if](/docs/errors/syntax.else_if)
    
    Else-if written as `elif` or `elsif`
    
-   [syntax.equality\_operator](/docs/errors/syntax.equality_operator)
    
    Comparison written with another language's operator
    
-   [syntax.expected\_expression](/docs/errors/syntax.expected_expression)
    
    Expected a value
    
-   [syntax.expected\_statement](/docs/errors/syntax.expected_statement)
    
    Expected a statement
    
-   [syntax.for\_loop](/docs/errors/syntax.for_loop)
    
    Loop written in another language's form
    
-   [syntax.function\_keyword](/docs/errors/syntax.function_keyword)
    
    Function declared with `fn`, `func`, `def` or `fun`
    
-   [syntax.increment\_operator](/docs/errors/syntax.increment_operator)
    
    Variable changed with `++`, `--` or `+=`
    
-   [syntax.inline\_function\_arrow](/docs/errors/syntax.inline_function_arrow)
    
    Inline function written in another language's form
    
-   [syntax.logical\_operator](/docs/errors/syntax.logical_operator)
    
    Logical operator written in another language's form
    
-   [syntax.match\_arrow](/docs/errors/syntax.match_arrow)
    
    Match arm uses `=>`
    
-   [syntax.match\_pattern](/docs/errors/syntax.match_pattern)
    
    Expected a match pattern
    
-   [syntax.member\_comma](/docs/errors/syntax.member_comma)
    
    Members separated by commas
    
-   [syntax.named\_argument\_duplicate](/docs/errors/syntax.named_argument_duplicate)
    
    Named argument is given twice
    
-   [syntax.named\_argument\_equals](/docs/errors/syntax.named_argument_equals)
    
    Named argument written with `=`
    
-   [syntax.positional\_after\_named](/docs/errors/syntax.positional_after_named)
    
    Positional argument follows a named one
    
-   [syntax.return\_type\_arrow](/docs/errors/syntax.return_type_arrow)
    
    Result type written after `:`
    
-   [syntax.semicolon](/docs/errors/syntax.semicolon)
    
    Statement or member ends with `;`
    
-   [syntax.switch\_statement](/docs/errors/syntax.switch_statement)
    
    Choice written with `switch` or `when`
    
-   [syntax.ternary\_operator](/docs/errors/syntax.ternary_operator)
    
    Value chosen with `? :`
    
-   [syntax.try\_catch](/docs/errors/syntax.try_catch)
    
    Failure handled with `try`, `catch` or `?`
    
-   [syntax.unsupported\_throw](/docs/errors/syntax.unsupported_throw)
    
    Failure raised with `throw` or `raise`
    
-   [syntax.variable\_keyword](/docs/errors/syntax.variable_keyword)
    
    Variable declared with `let`, `const` or `val`
    
-   [toolchain.not\_built\_yet](/docs/errors/toolchain.not_built_yet)
    
    Operation is declared but not built yet
    
-   [type.argument\_count](/docs/errors/type.argument_count)
    
    Call has the wrong number of arguments
    
-   [type.arithmetic\_operand](/docs/errors/type.arithmetic_operand)
    
    Arithmetic operand has the wrong type
    
-   [type.assign\_immutable](/docs/errors/type.assign_immutable)
    
    Value that never changes is assigned
    
-   [type.assign\_unknown](/docs/errors/type.assign_unknown)
    
    Assignment target is not declared
    
-   [type.divisor\_zero](/docs/errors/type.divisor_zero)
    
    Divisor may be zero
    
-   [type.incomparable](/docs/errors/type.incomparable)
    
    Values cannot be compared for equality
    
-   [type.inline\_function\_parameters](/docs/errors/type.inline_function_parameters)
    
    Inline function has a different number of parameters than its operation gives
    
-   [type.inline\_function\_placement](/docs/errors/type.inline_function_placement)
    
    Inline function is not an argument to a collection operation
    
-   [type.logical\_operand](/docs/errors/type.logical_operand)
    
    Logical operator needs Bool operands
    
-   [type.match\_arm\_value](/docs/errors/type.match_arm_value)
    
    Match arm gives no value
    
-   [type.match\_duplicate\_pattern](/docs/errors/type.match_duplicate_pattern)
    
    Match pattern is already covered
    
-   [type.match\_non\_exhaustive](/docs/errors/type.match_non_exhaustive)
    
    Match does not cover every case
    
-   [type.match\_pattern\_type](/docs/errors/type.match_pattern_type)
    
    Pattern cannot match this value
    
-   [type.match\_some\_non\_optional](/docs/errors/type.match_some_non_optional)
    
    Nullable pattern on a value that is never none
    
-   [type.match\_unknown\_binding](/docs/errors/type.match_unknown_binding)
    
    Pattern names data a case does not carry
    
-   [type.match\_unknown\_variant](/docs/errors/type.match_unknown_variant)
    
    Pattern names an unknown enum variant
    
-   [type.match\_unreachable\_pattern](/docs/errors/type.match_unreachable_pattern)
    
    Match arm is unreachable after the wildcard
    
-   [type.match\_wildcard\_closed](/docs/errors/type.match_wildcard_closed)
    
    Wildcard on a value whose cases can be listed
    
-   [type.match\_wildcard\_required](/docs/errors/type.match_wildcard_required)
    
    Open value space needs a wildcard arm
    
-   [type.named\_argument\_unknown](/docs/errors/type.named_argument_unknown)
    
    Named argument is not a parameter
    
-   [type.named\_argument\_unsupported](/docs/errors/type.named_argument_unsupported)
    
    Callable does not take named arguments
    
-   [type.not\_a\_value](/docs/errors/type.not_a_value)
    
    Declaration named where a value is read
    
-   [type.ordering\_operand](/docs/errors/type.ordering_operand)
    
    Values cannot be ordered
    
-   [type.unary\_operand](/docs/errors/type.unary_operand)
    
    Operator cannot be used with this value
    
-   [type.unknown\_value](/docs/errors/type.unknown_value)
    
    Name is not defined in this scope
    

## Failures

-   [failure.code\_format](/docs/errors/failure.code_format)
    
    Failure code is not lower\_snake\_case
    
-   [failure.context\_field\_overlap](/docs/errors/failure.context_field_overlap)
    
    Field is declared for both the client and the log
    
-   [failure.duplicate\_code](/docs/errors/failure.duplicate_code)
    
    Failure code is already in use
    
-   [failure.duplicate\_context\_field](/docs/errors/failure.duplicate_context_field)
    
    Failure field is given twice
    
-   [failure.duplicate\_declaration](/docs/errors/failure.duplicate_declaration)
    
    Failure is listed twice after `fails`
    
-   [failure.duplicate\_mapping](/docs/errors/failure.duplicate_mapping)
    
    Condition is mapped twice
    
-   [failure.invalid\_covers\_nothing](/docs/errors/failure.invalid_covers_nothing)
    
    Catch-all covers no rule, because every rule that can break has an arm
    
-   [failure.invalid\_outside\_construction](/docs/errors/failure.invalid_outside_construction)
    
    Catch-all for rules is used on something that is not a construction
    
-   [failure.kind\_required](/docs/errors/failure.kind_required)
    
    Failure has no kind
    
-   [failure.kind\_runtime\_only](/docs/errors/failure.kind_runtime_only)
    
    Failure kind is raised only by the runtime
    
-   [failure.mapping\_kind](/docs/errors/failure.mapping_kind)
    
    Mapped failure's kind does not fit its condition
    
-   [failure.missing\_context\_field](/docs/errors/failure.missing_context_field)
    
    Rejected failure is missing a field
    
-   [failure.rule\_cannot\_break](/docs/errors/failure.rule_cannot_break)
    
    Arm maps a rule the value cannot break
    
-   [failure.rule\_unmapped](/docs/errors/failure.rule_unmapped)
    
    Rule that can break has no arm and no catch-all
    
-   [failure.stale\_declaration](/docs/errors/failure.stale_declaration)
    
    Listed failure can never happen
    
-   [failure.undeclared\_propagation](/docs/errors/failure.undeclared_propagation)
    
    Failure that can leave is not listed after `fails`
    
-   [failure.unknown\_context\_field](/docs/errors/failure.unknown_context_field)
    
    Rejected failure has no such field
    
-   [failure.unknown\_mapping](/docs/errors/failure.unknown_mapping)
    
    Mapping names a condition the operation does not have
    
-   [syntax.fails\_after\_result](/docs/errors/syntax.fails_after_result)
    
    Fails list comes after the result type
    
-   [syntax.mapping\_block\_required](/docs/errors/syntax.mapping_block_required)
    
    Mappings are written after the call instead of in a block
    

## Data

-   [data.cleared\_required\_reference](/docs/errors/data.cleared_required_reference)
    
    A reference that can never be `none` is cleared on delete
    
-   [data.duplicate\_rule](/docs/errors/data.duplicate_rule)
    
    Unique rule or index repeats another
    
-   [data.entity\_in\_field](/docs/errors/data.entity_in_field)
    
    Field holds an entity instead of a reference to one
    
-   [data.field\_list\_required](/docs/errors/data.field_list_required)
    
    Unique rule or index is not a list of fields
    
-   [data.field\_without\_json](/docs/errors/data.field_without_json)
    
    Structured field holds a type with no stored JSON form
    
-   [data.generated\_type](/docs/errors/data.generated_type)
    
    Generated field is not a required `Instant`
    
-   [data.identity\_missing](/docs/errors/data.identity_missing)
    
    Entity has no `id` field
    
-   [data.identity\_type](/docs/errors/data.identity_type)
    
    Entity's `id` is not a required `Uuid`
    
-   [data.lifecycle\_condition](/docs/errors/data.lifecycle_condition)
    
    Lifecycle condition isn't a test of the record's own fields
    
-   [data.lifecycle\_initial\_required](/docs/errors/data.lifecycle_initial_required)
    
    Required field a transition sets has no starting value
    
-   [data.lifecycle\_purge\_after](/docs/errors/data.lifecycle_purge_after)
    
    Purge's `after:` isn't a positive duration
    
-   [data.lifecycle\_purge\_since](/docs/errors/data.lifecycle_purge_since)
    
    Purge's `since:` isn't a time field of the record
    
-   [data.lifecycle\_purge\_visible](/docs/errors/data.lifecycle_purge_visible)
    
    Lifecycle purges records but hides none
    
-   [data.lifecycle\_section](/docs/errors/data.lifecycle_section)
    
    Lifecycle has a section it doesn't take, or lacks one it needs
    
-   [data.lifecycle\_transition\_name](/docs/errors/data.lifecycle_transition_name)
    
    Transition is named like another operation or a field
    
-   [data.lifecycle\_unknown\_field](/docs/errors/data.lifecycle_unknown_field)
    
    Lifecycle names a field the entity doesn't have
    
-   [data.lifecycle\_value](/docs/errors/data.lifecycle_value)
    
    Lifecycle sets a value that isn't fixed
    
-   [data.name\_too\_long](/docs/errors/data.name_too_long)
    
    Name is too long for a table or column
    
-   [data.on\_delete\_not\_reference](/docs/errors/data.on_delete_not_reference)
    
    Field that is not a reference sets `on_delete`
    
-   [data.on\_delete\_required](/docs/errors/data.on_delete_required)
    
    Reference does not say what deleting its record does
    
-   [data.reference\_across\_stores](/docs/errors/data.reference_across_stores)
    
    Reference points at an entity in another store
    
-   [data.reference\_cycle](/docs/errors/data.reference_cycle)
    
    Required references form a cycle
    
-   [data.repeated\_field](/docs/errors/data.repeated_field)
    
    Unique rule or index lists a field twice
    
-   [data.reserved\_table\_name](/docs/errors/data.reserved_table_name)
    
    Entity's table name starts with `jadpo_`
    
-   [data.store\_required](/docs/errors/data.store_required)
    
    Entity names no store and there is no `main`
    
-   [data.store\_unknown](/docs/errors/data.store_unknown)
    
    Entity's store is not a database connection
    
-   [data.unique\_nullable\_field](/docs/errors/data.unique_nullable_field)
    
    Unique rule includes a field that can be `none`
    
-   [data.unique\_single\_field](/docs/errors/data.unique_single_field)
    
    Unique rule has only one field
    
-   [data.unknown\_field](/docs/errors/data.unknown_field)
    
    Unique rule or index names a field the entity does not have
    
-   [data.unknown\_section](/docs/errors/data.unknown_section)
    
    Entity has a section Jadpo does not know
    
-   [migration.backfill\_can\_fail](/docs/errors/migration.backfill_can_fail)
    
    Computed backfill can fail
    
-   [migration.backfill\_outside\_row](/docs/errors/migration.backfill_outside_row)
    
    Computed backfill reads more than its row
    
-   [migration.decision\_invalid](/docs/errors/migration.decision_invalid)
    
    Migration decision does not fit its change
    
-   [migration.decision\_required](/docs/errors/migration.decision_required)
    
    Migration needs a decision
    
-   [migration.decision\_unknown](/docs/errors/migration.decision_unknown)
    
    Migration decides about something that is not changing
    
-   [migration.out\_of\_date](/docs/errors/migration.out_of_date)
    
    Entities and the latest migration disagree
    
-   [migration.record\_invalid](/docs/errors/migration.record_invalid)
    
    Migration folder cannot be read
    
-   [migration.unfinished](/docs/errors/migration.unfinished)
    
    Latest migration is not finished
    

## Reads and writes

-   [data.conflict\_cannot\_break](/docs/errors/data.conflict_cannot_break)
    
    Conflict mapping for a rule the write can't break
    
-   [data.conflict\_unknown](/docs/errors/data.conflict_unknown)
    
    Conflict mapping names no unique rule or reference
    
-   [data.conflict\_unmapped](/docs/errors/data.conflict_unmapped)
    
    Write can break a rule its `conflict:` doesn't map
    
-   [data.lifecycle\_hard\_delete](/docs/errors/data.lifecycle_hard_delete)
    
    Delete would remove a record its lifecycle keeps
    
-   [data.lifecycle\_owned\_field](/docs/errors/data.lifecycle_owned_field)
    
    Write sets a field only the lifecycle changes
    
-   [data.patch\_field\_required](/docs/errors/data.patch_field_required)
    
    Patch input has a field that isn't optional
    
-   [data.patch\_field\_unknown](/docs/errors/data.patch_field_unknown)
    
    Patch names a field the entity or its input doesn't have
    
-   [data.patch\_not\_input](/docs/errors/data.patch_not_input)
    
    Patch given something other than an `Input`
    
-   [data.patch\_overlap](/docs/errors/data.patch_overlap)
    
    Supplied-field block sets a field the patch already sets
    
-   [data.read\_in\_loop](/docs/errors/data.read_in_loop)
    
    Query or `get` inside a `for` loop
    
-   [data.set\_generated\_field](/docs/errors/data.set_generated_field)
    
    Write sets a field the store generates
    
-   [data.stored\_decimal\_scale](/docs/errors/data.stored_decimal_scale)
    
    Update by `id` adds a decimal with more places than its field keeps
    
-   [data.stored\_value\_outside\_update](/docs/errors/data.stored_value_outside_update)
    
    Stored field read outside an update by `id`
    
-   [data.stored\_value\_unproven](/docs/errors/data.stored_value_unproven)
    
    Update by `id` builds a value from a stored field that could break its type's rules
    
-   [data.update\_by\_id\_value](/docs/errors/data.update_by_id_value)
    
    Update by `id` sets a value from something it can't use
    
-   [data.write\_before\_call](/docs/errors/data.write_before_call)
    
    Write comes before a later outside call
    
-   [data.write\_not\_entity](/docs/errors/data.write_not_entity)
    
    Write names a type that isn't an entity
    
-   [data.write\_section\_required](/docs/errors/data.write_section_required)
    
    Write doesn't say what it changes
    
-   [data.write\_section\_unexpected](/docs/errors/data.write_section_unexpected)
    
    Write has a section it doesn't take
    
-   [query.aggregate\_argument](/docs/errors/query.aggregate_argument)
    
    Aggregate is given the wrong arguments
    
-   [query.aggregate\_field](/docs/errors/query.aggregate_field)
    
    Aggregate cannot be worked out over this field
    
-   [query.aggregate\_unknown](/docs/errors/query.aggregate_unknown)
    
    Aggregate entry is not count, sum, min, max or average
    
-   [query.condition\_unsupported](/docs/errors/query.condition_unsupported)
    
    Query condition is not one an index can serve
    
-   [query.from\_not\_entity](/docs/errors/query.from_not_entity)
    
    Query reads something that is not an entity
    
-   [query.geometry\_field](/docs/errors/query.geometry_field)
    
    Map layer's geometry field is not a stored geometry of its type
    
-   [query.group\_key](/docs/errors/query.group_key)
    
    Records cannot be grouped by this
    
-   [query.include\_depth](/docs/errors/query.include_depth)
    
    Includes nest more than two levels
    
-   [query.include\_result](/docs/errors/query.include_result)
    
    Result type has no field of the right shape for an include
    
-   [query.include\_unknown](/docs/errors/query.include_unknown)
    
    Include names no reference to or from the entity
    
-   [query.limit\_range](/docs/errors/query.limit_range)
    
    Query limit or page size is below 1
    
-   [query.limit\_unbounded](/docs/errors/query.limit_unbounded)
    
    Query limit or page size comes from a value with no maximum
    
-   [query.not\_unique](/docs/errors/query.not_unique)
    
    Query for one record can match several
    
-   [query.optional\_value](/docs/errors/query.optional_value)
    
    Condition compares with a value that may be absent, or `where_present:` with one that is always there
    
-   [query.order\_direction](/docs/errors/query.order_direction)
    
    Order field has no `asc` or `desc`
    
-   [query.order\_field](/docs/errors/query.order_field)
    
    Field cannot be in a query's order
    
-   [query.other\_domain](/docs/errors/query.other_domain)
    
    Query reads another domain's entity
    
-   [query.page\_setting](/docs/errors/query.page_setting)
    
    Page block is missing a setting or has a wrong one
    
-   [query.repeated\_section](/docs/errors/query.repeated_section)
    
    Query section is given twice
    
-   [query.result\_field](/docs/errors/query.result_field)
    
    Result type has a field the entity cannot fill
    
-   [query.result\_rule](/docs/errors/query.result_rule)
    
    Query result type has rules across its fields
    
-   [query.result\_type](/docs/errors/query.result_type)
    
    Query result is not the entity or a type derived from it
    
-   [query.section\_required](/docs/errors/query.section_required)
    
    Query is missing a section its result needs
    
-   [query.section\_unexpected](/docs/errors/query.section_unexpected)
    
    Query has a section its result does not take
    
-   [query.unknown\_field](/docs/errors/query.unknown_field)
    
    Query names a field its entity does not have
    
-   [query.unknown\_section](/docs/errors/query.unknown_section)
    
    Query has a section Jadpo does not know
    
-   [query.value\_unsupported](/docs/errors/query.value_unsupported)
    
    Query value is computed rather than a parameter, literal or enum value
    
-   [store.action\_spans\_stores](/docs/errors/store.action_spans_stores)
    
    Action writes more than one store
    

## HTTP

-   [api.authentication\_invalid](/docs/errors/api.authentication_invalid)
    
    API authentication is not a list of declared sign-in methods
    
-   [api.idempotency\_invalid](/docs/errors/api.idempotency_invalid)
    
    API idempotency is not an Idempotency
    
-   [api.prefix\_overlap](/docs/errors/api.prefix_overlap)
    
    Two APIs share a prefix
    
-   [api.prefix\_required](/docs/errors/api.prefix_required)
    
    Declared API has no prefix
    
-   [api.serve\_openapi\_invalid](/docs/errors/api.serve_openapi_invalid)
    
    API serve\_openapi is not true or false
    
-   [api.setting\_unknown](/docs/errors/api.setting_unknown)
    
    API setting is not one an API takes
    
-   [route.api\_unknown](/docs/errors/route.api_unknown)
    
    Route group names an API the application doesn't declare
    
-   [route.argument\_invalid](/docs/errors/route.argument_invalid)
    
    Route passes something other than a placeholder, the input or their fields
    
-   [route.authentication\_invalid](/docs/errors/route.authentication_invalid)
    
    Route authentication is not RouteAuthentication.none or .fresh
    
-   [route.binding\_unused](/docs/errors/route.binding_unused)
    
    Route reads a placeholder or input it never passes on
    
-   [route.deadline\_invalid](/docs/errors/route.deadline_invalid)
    
    Route deadline is not a duration up to 60 seconds
    
-   [route.header\_credential](/docs/errors/route.header_credential)
    
    Input field reads a header authentication owns
    
-   [route.header\_duplicate](/docs/errors/route.header_duplicate)
    
    Two input fields read the same header
    
-   [route.header\_name\_invalid](/docs/errors/route.header_name_invalid)
    
    Header name is not a valid HTTP header name
    
-   [route.header\_not\_scalar](/docs/errors/route.header_not_scalar)
    
    Header field is not a single value
    
-   [route.input\_not\_input](/docs/errors/route.input_not_input)
    
    Route input is not an `Input` type
    
-   [route.item\_duplicate](/docs/errors/route.item_duplicate)
    
    Route item is given twice
    
-   [route.item\_unknown](/docs/errors/route.item_unknown)
    
    Route or route group item is not one it takes
    
-   [route.output\_mismatch](/docs/errors/route.output_mismatch)
    
    Route output is not exactly what it runs returns
    
-   [route.output\_not\_output](/docs/errors/route.output_not_output)
    
    Route output is not an `Output` type
    
-   [route.output\_required](/docs/errors/route.output_required)
    
    Route has no `output:`
    
-   [route.output\_unexpected](/docs/errors/route.output_unexpected)
    
    A `no_content` route has an output
    
-   [route.path\_overlap](/docs/errors/route.path_overlap)
    
    Two routes could answer the same request
    
-   [route.placeholder\_duplicate](/docs/errors/route.placeholder_duplicate)
    
    Placeholder name is used twice in a route's path
    
-   [route.placeholder\_type](/docs/errors/route.placeholder_type)
    
    Placeholder is not typed with a named scalar or an `X.id`
    
-   [route.prefix\_api](/docs/errors/route.prefix_api)
    
    Route group prefix does not start with its API's prefix
    
-   [route.prefix\_required](/docs/errors/route.prefix_required)
    
    Route group has no prefix
    
-   [route.query\_field\_unsupported](/docs/errors/route.query_field_unsupported)
    
    Query-string input field is not a scalar, an enum or a list of them
    
-   [route.run\_invalid](/docs/errors/route.run_invalid)
    
    Route `run:` is not a call of a named action or query
    
-   [route.run\_kind](/docs/errors/route.run_kind)
    
    A `GET` route runs a query and other methods run an action
    
-   [route.run\_required](/docs/errors/route.run_required)
    
    Route does not say what it runs
    
-   [route.settle\_invalid](/docs/errors/route.settle_invalid)
    
    Route `settle:` is not an answer query and a wait inside its deadline
    
-   [route.status\_invalid](/docs/errors/route.status_invalid)
    
    Route status is not a `SuccessStatus`
    
-   [route.stream\_invalid](/docs/errors/route.stream_invalid)
    
    Streaming route answers with another status or waits with `settle:`
    
-   [syntax.expected\_http\_method](/docs/errors/syntax.expected_http_method)
    
    Route method is not one a route is written with
    

## Identity

-   [semantic.auth\_method\_duplicate](/docs/errors/semantic.auth_method_duplicate)
    
    Sign-in method is declared twice
    
-   [semantic.auth\_method\_unknown](/docs/errors/semantic.auth_method_unknown)
    
    Sign-in method is not one the language has
    
-   [semantic.auth\_not\_set\_up](/docs/errors/semantic.auth_not_set_up)
    
    Routes need a signed-in caller, but nothing signs anyone in
    
-   [semantic.auth\_principal\_required](/docs/errors/semantic.auth_principal_required)
    
    Sign-in method has no principal variant to sign in
    
-   [semantic.auth\_setting\_invalid](/docs/errors/semantic.auth_setting_invalid)
    
    Sign-in setting has a value it can't take
    
-   [semantic.auth\_setting\_required](/docs/errors/semantic.auth_setting_required)
    
    Sign-in method is missing a setting it needs
    
-   [semantic.auth\_setting\_unknown](/docs/errors/semantic.auth_setting_unknown)
    
    Sign-in setting is not one the method takes
    
-   [semantic.multiple\_applications](/docs/errors/semantic.multiple_applications)
    
    Project declares more than one application
    
-   [semantic.multiple\_authentication](/docs/errors/semantic.multiple_authentication)
    
    Project declares more than one authentication block
    
-   [semantic.multiple\_principals](/docs/errors/semantic.multiple_principals)
    
    Project declares more than one principal
    
-   [semantic.principal\_variant\_duplicate](/docs/errors/semantic.principal_variant_duplicate)
    
    Principal declares a variant twice
    
-   [semantic.principal\_variant\_invalid](/docs/errors/semantic.principal_variant_invalid)
    
    Principal variant is not a subject and an optional active condition
    
-   [semantic.principal\_variant\_required](/docs/errors/semantic.principal_variant_required)
    
    Principal declares neither a user nor a service
    
-   [semantic.principal\_variant\_unknown](/docs/errors/semantic.principal_variant_unknown)
    
    Principal variant is not user or service
    
-   [semantic.revocation\_delay\_invalid](/docs/errors/semantic.revocation_delay_invalid)
    
    Revocation delay is not a positive duration
    
-   [type.auth\_credential\_stored](/docs/errors/type.auth_credential_stored)
    
    Entity field holds an API token or a service key
    
-   [type.auth\_principal\_construction](/docs/errors/type.auth_principal_construction)
    
    Caller is made from a record outside tests, fixtures and seeds
    
-   [type.auth\_principal\_failure\_context](/docs/errors/type.auth_principal_failure_context)
    
    Failure field holds a caller
    
-   [type.auth\_principal\_input](/docs/errors/type.auth_principal_input)
    
    Input field holds a caller
    
-   [type.auth\_principal\_output](/docs/errors/type.auth_principal_output)
    
    Output field holds a caller
    
-   [type.auth\_principal\_variant\_unknown](/docs/errors/type.auth_principal_variant_unknown)
    
    Caller variant is not one the principal declares
    
-   [type.auth\_public\_principal](/docs/errors/type.auth_public_principal)
    
    Public route passes a caller it never reads
    
-   [type.auth\_sessions\_context](/docs/errors/type.auth_sessions_context)
    
    Session, API token or service key operation outside an action, or without its sign-in method
    
-   [type.principal\_active\_invalid](/docs/errors/type.principal_active_invalid)
    
    Principal's active condition is not a test of the record's own fields
    
-   [type.principal\_subject\_invalid](/docs/errors/type.principal_subject_invalid)
    
    Principal's subject is not a field of a stored entity
    
-   [type.principal\_subject\_not\_unique](/docs/errors/type.principal_subject_not_unique)
    
    Principal's subject field is not unique
    

## Policy

-   [policy.binding\_invalid](/docs/errors/policy.binding_invalid)
    
    Policy names something that can't say who
    
-   [policy.declaration\_duplicate](/docs/errors/policy.declaration_duplicate)
    
    Policy is declared twice
    
-   [policy.effect\_duplicate](/docs/errors/policy.effect_duplicate)
    
    Policy gives the same list twice
    
-   [policy.effect\_ungranted](/docs/errors/policy.effect_ungranted)
    
    Route reaches something no grant allows
    
-   [policy.effect\_unknown](/docs/errors/policy.effect_unknown)
    
    Policy holds something that isn't a grant or a setting
    
-   [policy.event\_tenant\_unproved](/docs/errors/policy.event_tenant_unproved)
    
    An event or a batch names a tenant its action never reached under its caller's policy
    
-   [policy.field\_widens\_entity](/docs/errors/policy.field_widens_entity)
    
    Field policy lets in someone its record's grants don't
    
-   [policy.membership\_duplicate](/docs/errors/policy.membership_duplicate)
    
    Entity declares a membership twice, or gives one of its parts twice
    
-   [policy.membership\_member\_required](/docs/errors/policy.membership_member_required)
    
    Membership doesn't say who holds it
    
-   [policy.membership\_role\_required](/docs/errors/policy.membership_role_required)
    
    Membership doesn't say which field holds the role
    
-   [policy.membership\_scope\_required](/docs/errors/policy.membership_scope_required)
    
    Membership doesn't say what it is held in
    
-   [policy.output\_field\_unproved](/docs/errors/policy.output_field_unproved)
    
    Output carries a value not every caller may read
    
-   [policy.public\_grant\_missing](/docs/errors/policy.public_grant_missing)
    
    Route anyone may call reaches what not everyone may do
    
-   [policy.role\_field\_create\_forbidden](/docs/errors/policy.role_field_create_forbidden)
    
    Create sets the user field its grant needs from the request, not the caller
    
-   [policy.role\_unbound](/docs/errors/policy.role_unbound)
    
    Grant names a role no membership holds
    
-   [policy.scope\_ambiguous](/docs/errors/policy.scope_ambiguous)
    
    Grant doesn't say which reference a role or the tenant applies through
    
-   [policy.scope\_duplicate](/docs/errors/policy.scope_duplicate)
    
    A scope or tenant is given twice
    
-   [policy.scope\_missing](/docs/errors/policy.scope_missing)
    
    Entity has no reference a role or the tenant applies through
    
-   [policy.subject\_duplicate](/docs/errors/policy.subject_duplicate)
    
    Grant names the same caller twice
    
-   [policy.system\_grant\_missing](/docs/errors/policy.system_grant_missing)
    
    Schedule or subscriber reaches what only `Access.public` grants, not `Access.system`
    
-   [type.field\_update\_forbidden](/docs/errors/type.field_update_forbidden)
    
    Update changes a field that never changes
    

## Configuration and time

-   [configuration.binding\_empty](/docs/errors/configuration.binding_empty)
    
    Setting names an empty environment variable
    
-   [configuration.binding\_invalid](/docs/errors/configuration.binding_invalid)
    
    Setting names a variable that is not in capitals
    
-   [configuration.client\_address\_duplicate](/docs/errors/configuration.client_address_duplicate)
    
    Client address is declared twice
    
-   [configuration.client\_address\_hops\_invalid](/docs/errors/configuration.client_address_hops_invalid)
    
    Client address counts proxies with something that is not a count from 1
    
-   [configuration.client\_address\_hops\_unused](/docs/errors/configuration.client_address_hops_unused)
    
    Client address gives a count of proxies to a source that counts none
    
-   [configuration.client\_address\_invalid](/docs/errors/configuration.client_address_invalid)
    
    Client address is not a block of a source and a count of proxies
    
-   [configuration.client\_address\_source\_unknown](/docs/errors/configuration.client_address_source_unknown)
    
    Client address names a source that is not one of the four
    
-   [configuration.default\_invalid](/docs/errors/configuration.default_invalid)
    
    Setting value breaks its type's rules
    
-   [configuration.default\_literal\_required](/docs/errors/configuration.default_literal_required)
    
    Setting value is not a literal
    
-   [configuration.default\_type](/docs/errors/configuration.default_type)
    
    Setting value is the wrong kind of value for its type
    
-   [configuration.duplicate\_binding](/docs/errors/configuration.duplicate_binding)
    
    Two settings read the same environment variable
    
-   [configuration.duplicate\_option](/docs/errors/configuration.duplicate_option)
    
    Setting option is given twice
    
-   [configuration.expected\_field](/docs/errors/configuration.expected_field)
    
    Configuration holds something that is not a setting
    
-   [configuration.field\_unknown](/docs/errors/configuration.field_unknown)
    
    Configuration has no setting with this name
    
-   [configuration.multiple\_declarations](/docs/errors/configuration.multiple_declarations)
    
    Configuration is declared more than once
    
-   [configuration.secret\_default](/docs/errors/configuration.secret_default)
    
    Secret setting has a value in source
    
-   [configuration.secret\_flow](/docs/errors/configuration.secret_flow)
    
    Secret setting is used where it could leave the server
    
-   [configuration.secret\_invalid](/docs/errors/configuration.secret_invalid)
    
    Secret option is not true or false
    
-   [configuration.test\_value\_missing](/docs/errors/configuration.test_value_missing)
    
    Setting read by a test has no value in tests
    
-   [configuration.type\_unsupported](/docs/errors/configuration.type_unsupported)
    
    Setting type cannot be read from one variable
    
-   [configuration.unknown\_option](/docs/errors/configuration.unknown_option)
    
    Setting option is not one a setting takes
    
-   [configuration.url\_type](/docs/errors/configuration.url_type)
    
    Connection address is not a setting of the type its driver needs
    
-   [semantic.multiple\_locale\_declarations](/docs/errors/semantic.multiple_locale_declarations)
    
    Locales are declared more than once
    
-   [syntax.locales\_default\_required](/docs/errors/syntax.locales_default_required)
    
    Locales declaration has no default
    
-   [syntax.locales\_duplicate\_option](/docs/errors/syntax.locales_duplicate_option)
    
    Locales option is given twice
    
-   [syntax.locales\_supported\_required](/docs/errors/syntax.locales_supported_required)
    
    Locales declaration lists no supported locales
    
-   [syntax.locales\_unknown\_option](/docs/errors/syntax.locales_unknown_option)
    
    Locales declaration has no such option
    
-   [translation.feature\_off](/docs/errors/translation.feature_off)
    
    A language file words a Jadpo message of a feature the application has off
    
-   [translation.field\_type](/docs/errors/translation.field_type)
    
    A message field is a type a wording can't hold
    
-   [translation.field\_unused](/docs/errors/translation.field_unused)
    
    No wording in a language uses one of a message's fields
    
-   [translation.file\_missing](/docs/errors/translation.file_missing)
    
    A supported locale has no language file
    
-   [translation.file\_name\_invalid](/docs/errors/translation.file_name_invalid)
    
    A language file is not named for a locale
    
-   [translation.group\_unknown](/docs/errors/translation.group_unknown)
    
    A group in the root language file is not one Jadpo reads
    
-   [translation.jadpo\_missing](/docs/errors/translation.jadpo_missing)
    
    A supported locale lacks wording for Jadpo's own messages
    
-   [translation.locale\_unsupported](/docs/errors/translation.locale_unsupported)
    
    A language file is for a locale the application does not support
    
-   [translation.locales\_required](/docs/errors/translation.locales_required)
    
    Translations without declared locales
    
-   [translation.member\_duplicate](/docs/errors/translation.member_duplicate)
    
    A member is written twice in a language file
    
-   [translation.member\_unknown](/docs/errors/translation.member_unknown)
    
    A language file words something that is no message, enum or email
    
-   [translation.message\_unknown](/docs/errors/translation.message_unknown)
    
    A translation call names no message or enum
    
-   [translation.option\_unknown](/docs/errors/translation.option_unknown)
    
    An option of translations in app.jadpo is not one it takes
    
-   [translation.placeholder\_style](/docs/errors/translation.placeholder_style)
    
    A wording writes an amount of money without its style, or a style on another field
    
-   [translation.placeholder\_unknown](/docs/errors/translation.placeholder_unknown)
    
    A wording writes a field the message does not have
    
-   [translation.review\_invalid](/docs/errors/translation.review_invalid)
    
    Translation review is not a TranslationReview
    
-   [translation.sources\_invalid](/docs/errors/translation.sources_invalid)
    
    A translations folder's sources record cannot be read
    
-   [translation.stale](/docs/errors/translation.stale)
    
    A translation was made from default wording that has changed
    
-   [translation.too\_many\_selectors](/docs/errors/translation.too_many_selectors)
    
    A message has more than one enum or plural field
    
-   [translation.variant\_missing](/docs/errors/translation.variant_missing)
    
    A wording lacks a value of the enum or a plural form
    
-   [translation.variant\_unknown](/docs/errors/translation.variant_unknown)
    
    A wording is for a value or plural form that does not exist
    
-   [translation.wording\_invalid](/docs/errors/translation.wording_invalid)
    
    A wording is not a plain string with {field} placeholders
    
-   [translation.wording\_missing](/docs/errors/translation.wording_missing)
    
    A supported locale has no wording for a message
    
-   [translation.wording\_shape](/docs/errors/translation.wording_shape)
    
    A member is written in the wrong shape for what it words
    
-   [type.clock\_context](/docs/errors/type.clock_context)
    
    The operation clock is unavailable in this context
    
-   [type.locale\_default\_unsupported](/docs/errors/type.locale_default_unsupported)
    
    Default locale is not a supported one
    
-   [type.locale\_duplicate](/docs/errors/type.locale_duplicate)
    
    Locale is listed twice
    
-   [type.locale\_in\_progress\_default](/docs/errors/type.locale_in_progress_default)
    
    The default locale is listed as in progress
    
-   [type.locale\_in\_progress\_unsupported](/docs/errors/type.locale_in_progress_unsupported)
    
    An in-progress locale is not a supported locale
    
-   [type.locale\_invalid](/docs/errors/type.locale_invalid)
    
    Locale is not written as a Locale
    
-   [type.locale\_unsupported](/docs/errors/type.locale_unsupported)
    
    Locale is not one the application supports
    
-   [type.presentation\_text\_persistence](/docs/errors/type.presentation_text_persistence)
    
    Formatted text is stored
    
-   [type.temporal\_clock\_invalid](/docs/errors/type.temporal_clock_invalid)
    
    Clock time is not written `HH:MM`
    
-   [type.temporal\_format\_component\_duplicate](/docs/errors/type.temporal_format_component_duplicate)
    
    Format component is given twice
    
-   [type.temporal\_format\_component\_invalid](/docs/errors/type.temporal_format_component_invalid)
    
    Format component takes no such style
    
-   [type.temporal\_format\_components\_empty](/docs/errors/type.temporal_format_components_empty)
    
    Declared format shows nothing
    
-   [type.temporal\_format\_invalid](/docs/errors/type.temporal_format_invalid)
    
    Format is not a written-out time format
    
-   [type.temporal\_format\_requires\_time](/docs/errors/type.temporal_format_requires_time)
    
    Format shows a clock time a date doesn't have
    
-   [type.temporal\_locales\_required](/docs/errors/type.temporal_locales_required)
    
    Formatting needs declared locales
    
-   [type.temporal\_option\_unused](/docs/errors/type.temporal_option_unused)
    
    Option means nothing for this value
    
-   [type.temporal\_zone\_required](/docs/errors/type.temporal_zone_required)
    
    Formatting an instant needs a zone
    

## External services

-   [connection.domain\_not\_listed](/docs/errors/connection.domain_not_listed)
    
    Action calls a connection its domain isn't listed on
    
-   [connection.key\_invalid](/docs/errors/connection.key_invalid)
    
    Connection gives a key its package doesn't take
    
-   [connection.key\_missing](/docs/errors/connection.key_missing)
    
    Connection leaves out a key its package needs
    
-   [connection.package\_unknown](/docs/errors/connection.package_unknown)
    
    Connection names no provider package the app holds
    
-   [connection.value\_invalid](/docs/errors/connection.value_invalid)
    
    Connection's key holds a value it can't
    
-   [package.action\_invalid](/docs/errors/package.action_invalid)
    
    Package action does what package code may not
    
-   [package.digest\_mismatch](/docs/errors/package.digest_mismatch)
    
    Installed package's files differ from its digest in the lock
    
-   [package.emails\_folder](/docs/errors/package.emails_folder)
    
    Package holds email templates
    
-   [package.index\_invalid](/docs/errors/package.index_invalid)
    
    Package's index is missing, or holds what an index can't
    
-   [package.licence\_not\_allowed](/docs/errors/package.licence_not_allowed)
    
    Proprietary package isn't installed from git
    
-   [package.name\_mismatch](/docs/errors/package.name_mismatch)
    
    Package's index names another package than its folder
    
-   [package.name\_taken](/docs/errors/package.name_taken)
    
    Package's name is already one of the app's
    
-   [package.not\_installed](/docs/errors/package.not_installed)
    
    Lock names a package that isn't installed
    
-   [package.not\_locked](/docs/errors/package.not_locked)
    
    Installed package has no line in the lock
    
-   [package.not\_public](/docs/errors/package.not_public)
    
    Code uses a package's declaration that isn't public
    
-   [package.operation\_invalid](/docs/errors/package.operation_invalid)
    
    Provider operation holds what it can't, or lacks what it needs
    
-   [package.provider\_invalid](/docs/errors/package.provider_invalid)
    
    Provider file holds what it can't, or lacks `protocol:`
    
-   [package.provider\_missing](/docs/errors/package.provider_missing)
    
    Package has resources but no `provider.jadpo`
    
-   [package.provider\_translations](/docs/errors/package.provider_translations)
    
    Provider package carries translations
    
-   [package.reserved\_name](/docs/errors/package.reserved_name)
    
    App's own integration takes a provider's reserved name
    
-   [package.standard\_candidate](/docs/errors/package.standard_candidate)
    
    Provider field looks like a standard type the package doesn't use
    
-   [package.version\_needed](/docs/errors/package.version_needed)
    
    Name written through a package held in two versions doesn't say which
    
-   [package.version\_unneeded](/docs/errors/package.version_unneeded)
    
    Name written through a package held in one version carries a version
    
-   [package.wire\_invalid](/docs/errors/package.wire_invalid)
    
    Field says how it is sent in a way it can't
    
-   [package.wire\_name\_invalid](/docs/errors/package.wire_name_invalid)
    
    Wire name outside a provider package, or one the type already uses
    
-   [route.calls\_past\_deadline](/docs/errors/route.calls_past_deadline)
    
    Outside calls a route reaches can take longer than its deadline
    
-   [test.recording\_undecodable](/docs/errors/test.recording_undecodable)
    
    Recorded provider answer its operation's decoders don't read
    
-   [test.round\_trip\_failed](/docs/errors/test.round_trip_failed)
    
    Field's decode and encode don't round-trip a recorded value
    

## Jobs and events

-   [event.emit\_invalid](/docs/errors/event.emit_invalid)
    
    Emit is given something that isn't an event, or is used outside an action
    
-   [event.settings\_invalid](/docs/errors/event.settings_invalid)
    
    Events settings in `app.jadpo` hold something other than a database's `store:`
    
-   [event.store\_required](/docs/errors/event.store_required)
    
    Action emits an event but writes no store to keep it in
    
-   [receiving.invalid](/docs/errors/receiving.invalid)
    
    A queue in `receiving:` doesn't say how its messages are read
    
-   [schedule.every\_invalid](/docs/errors/schedule.every_invalid)
    
    Schedule's `every:` isn't a whole number of seconds, minutes, hours or days
    
-   [schedule.item\_invalid](/docs/errors/schedule.item_invalid)
    
    Schedule holds an item it doesn't take, gives one twice or leaves out `every:` or `run:`
    
-   [schedule.run\_invalid](/docs/errors/schedule.run_invalid)
    
    Schedule's `run:` isn't a call of an action in its own domain with no arguments
    
-   [schedule.settings\_invalid](/docs/errors/schedule.settings_invalid)
    
    Schedules settings in `app.jadpo` hold something other than a database's `store:`
    
-   [schedule.store\_required](/docs/errors/schedule.store_required)
    
    Schedule has no database named to keep its state and lease in
    
-   [step.context](/docs/errors/step.context)
    
    Several changing calls where a retry can't resume them
    
-   [step.encryption\_key\_required](/docs/errors/step.encryption_key_required)
    
    Actions make several changing calls but no key encrypts their answers
    
-   [step.large\_output](/docs/errors/step.large_output)
    
    Operation with a large answer among several changing calls
    
-   [step.late\_failure](/docs/errors/step.late_failure)
    
    Action can fail for good after a changing call took effect
    
-   [step.settings\_invalid](/docs/errors/step.settings_invalid)
    
    Steps setting in `application { }` doesn't read
    
-   [step.store\_required](/docs/errors/step.store_required)
    
    Action makes several changing calls but writes no store to keep their record in
    
-   [step.too\_many](/docs/errors/step.too_many)
    
    More than 8 changing calls on one way through an action
    
-   [step.unkeyed](/docs/errors/step.unkeyed)
    
    Changing call with no idempotency key beside another changing call
    
-   [subscriber.argument\_invalid](/docs/errors/subscriber.argument_invalid)
    
    Subscriber passes something other than its event or a field of it
    
-   [subscriber.event\_invalid](/docs/errors/subscriber.event_invalid)
    
    Subscriber's `on:` doesn't name an event type
    
-   [subscriber.item\_invalid](/docs/errors/subscriber.item_invalid)
    
    Subscriber holds an item it doesn't take, gives one twice or leaves out `on:` or `run:`
    
-   [subscriber.retry\_invalid](/docs/errors/subscriber.retry_invalid)
    
    Subscriber's `retry:` isn't attempts and a duration within their limits
    
-   [subscriber.run\_invalid](/docs/errors/subscriber.run_invalid)
    
    Subscriber's `run:` isn't a call of an action in its own domain
    
-   [type.batch\_capture\_not\_storable](/docs/errors/type.batch_capture_not_storable)
    
    A batch saves a value that can't be stored
    
-   [type.batch\_context](/docs/errors/type.batch_context)
    
    Batch operation called outside an action
    
-   [type.batch\_each\_invalid](/docs/errors/type.batch_each_invalid)
    
    A batch's `each:` or `finished:` is not one call of an action in its domain, or a write's `each:` no inline function giving the row
    
-   [type.batch\_from\_invalid](/docs/errors/type.batch_from_invalid)
    
    A batch's `from:` is not a call of a named query giving a `Page`
    
-   [type.batch\_input](/docs/errors/type.batch_input)
    
    An `Input` or a route placeholder holds a batch type, which only the runtime builds
    
-   [type.batch\_order\_updatable](/docs/errors/type.batch_order_updatable)
    
    A batch walks a query ordered by a field an update can change
    
-   [type.batch\_row\_invalid](/docs/errors/type.batch_row_invalid)
    
    A file helper's rows can't be read as the type its `as:` names or from where its `items_at:` says, its `max_unpacked_size:` isn't a size, or its rows can't be written as the row its `each:` gives
    

## Testing

-   [semantic.fake\_invalid](/docs/errors/semantic.fake_invalid)
    
    Test's fakes script something no provider operation answers
    
-   [semantic.request\_invalid](/docs/errors/semantic.request_invalid)
    
    Route test request doesn't fit its route
    
-   [semantic.request\_route\_unknown](/docs/errors/semantic.request_route_unknown)
    
    No route answers a route test's request
    
-   [syntax.assertion\_form](/docs/errors/syntax.assertion_form)
    
    Assertion written in another language's form
    
-   [test.assertion\_failed](/docs/errors/test.assertion_failed)
    
    Test assertion does not hold
    
-   [test.fake\_exhausted](/docs/errors/test.fake_exhausted)
    
    Test called a faked operation more times than its fakes script
    
-   [test.fake\_unused](/docs/errors/test.fake_unused)
    
    Test left a faked operation's scripted answers unused
    
-   [test.fault](/docs/errors/test.fault)
    
    Test stopped on a fault
    
-   [test.subscriber\_failed](/docs/errors/test.subscriber_failed)
    
    Subscriber failed for good during a test
    
-   [test.unexpected\_failure](/docs/errors/test.unexpected_failure)
    
    Test ended in a failure it did not expect
    
-   [type.test\_clock\_context](/docs/errors/type.test_clock_context)
    
    The clock is moved outside a test
    

## Tooling

-   [ai.usage\_unavailable](/docs/errors/ai.usage_unavailable)
    
    AI usage's database couldn't be read
    
-   [cli.ai\_arguments](/docs/errors/cli.ai_arguments)
    
    AI command has invalid arguments
    
-   [cli.api\_arguments](/docs/errors/cli.api_arguments)
    
    Api command has invalid arguments
    
-   [cli.build\_arguments](/docs/errors/cli.build_arguments)
    
    Build command has invalid arguments
    
-   [cli.calls\_arguments](/docs/errors/cli.calls_arguments)
    
    Calls command has invalid arguments
    
-   [cli.check\_arguments](/docs/errors/cli.check_arguments)
    
    Check command has invalid arguments
    
-   [cli.completions\_arguments](/docs/errors/cli.completions_arguments)
    
    Completions command has invalid arguments
    
-   [cli.config\_arguments](/docs/errors/cli.config_arguments)
    
    Config command has invalid arguments
    
-   [cli.config\_prompt\_failed](/docs/errors/cli.config_prompt_failed)
    
    Secure configuration prompt failed
    
-   [cli.config\_tty\_required](/docs/errors/cli.config_tty_required)
    
    Configuration entry requires an interactive terminal
    
-   [cli.declines\_arguments](/docs/errors/cli.declines_arguments)
    
    Declines command has invalid arguments
    
-   [cli.deliveries\_arguments](/docs/errors/cli.deliveries_arguments)
    
    Deliveries command has invalid arguments
    
-   [cli.dev\_arguments](/docs/errors/cli.dev_arguments)
    
    Dev command has invalid arguments
    
-   [cli.dev\_port\_invalid](/docs/errors/cli.dev_port_invalid)
    
    Development port is invalid
    
-   [cli.dev\_start\_failed](/docs/errors/cli.dev_start_failed)
    
    Development server could not start
    
-   [cli.email\_arguments](/docs/errors/cli.email_arguments)
    
    Email command has invalid arguments
    
-   [cli.fix\_arguments](/docs/errors/cli.fix_arguments)
    
    Fix command has invalid arguments
    
-   [cli.fmt\_arguments](/docs/errors/cli.fmt_arguments)
    
    Format command has invalid arguments
    
-   [cli.help\_arguments](/docs/errors/cli.help_arguments)
    
    Help command has invalid arguments
    
-   [cli.lsp\_arguments](/docs/errors/cli.lsp_arguments)
    
    Language-server command has invalid arguments
    
-   [cli.migrate\_arguments](/docs/errors/cli.migrate_arguments)
    
    Migrate command has invalid arguments
    
-   [cli.new\_arguments](/docs/errors/cli.new_arguments)
    
    New command has invalid arguments
    
-   [cli.package\_arguments](/docs/errors/cli.package_arguments)
    
    Package command has invalid arguments
    
-   [cli.package\_not\_openapi](/docs/errors/cli.package_not_openapi)
    
    Description to import is not an OpenAPI 3 document
    
-   [cli.package\_unreadable](/docs/errors/cli.package_unreadable)
    
    Description to import could not be read as JSON
    
-   [cli.presentation\_arguments](/docs/errors/cli.presentation_arguments)
    
    Terminal presentation option is invalid
    
-   [cli.records\_arguments](/docs/errors/cli.records_arguments)
    
    Records command has invalid arguments
    
-   [cli.routes\_arguments](/docs/errors/cli.routes_arguments)
    
    Routes command has invalid arguments
    
-   [cli.runs\_arguments](/docs/errors/cli.runs_arguments)
    
    Runs command has invalid arguments
    
-   [cli.schedules\_arguments](/docs/errors/cli.schedules_arguments)
    
    Schedules command has invalid arguments
    
-   [cli.sql\_arguments](/docs/errors/cli.sql_arguments)
    
    Sql command has invalid arguments
    
-   [cli.suggest\_arguments](/docs/errors/cli.suggest_arguments)
    
    Suggest command has invalid arguments
    
-   [cli.test\_arguments](/docs/errors/cli.test_arguments)
    
    Test command has invalid arguments
    
-   [cli.toolchain\_arguments](/docs/errors/cli.toolchain_arguments)
    
    Toolchain command has invalid arguments
    
-   [cli.translations\_arguments](/docs/errors/cli.translations_arguments)
    
    Translations command has invalid arguments
    
-   [cli.unknown\_command](/docs/errors/cli.unknown_command)
    
    Unknown Jadpo command
    
-   [cli.unknown\_flag](/docs/errors/cli.unknown_flag)
    
    Unknown flag
    
-   [cli.version\_arguments](/docs/errors/cli.version_arguments)
    
    Version command has invalid arguments
    
-   [cli.why\_arguments](/docs/errors/cli.why_arguments)
    
    Why command has invalid arguments
    
-   [configuration.local\_changed](/docs/errors/configuration.local_changed)
    
    Local configuration changed during the update
    
-   [configuration.local\_invalid\_encoding](/docs/errors/configuration.local_invalid_encoding)
    
    Local configuration is not UTF-8 text
    
-   [configuration.local\_read\_failed](/docs/errors/configuration.local_read_failed)
    
    Local configuration could not be read
    
-   [configuration.local\_syntax](/docs/errors/configuration.local_syntax)
    
    Local configuration syntax is invalid
    
-   [configuration.local\_unsafe\_target](/docs/errors/configuration.local_unsafe_target)
    
    Local configuration target is unsafe
    
-   [configuration.local\_write\_failed](/docs/errors/configuration.local_write_failed)
    
    Local configuration could not be saved
    
-   [configuration.move\_name\_taken](/docs/errors/configuration.move_name_taken)
    
    A setting already has the constant's name
    
-   [configuration.move\_read\_unsupported](/docs/errors/configuration.move_read_unsupported)
    
    Constant is read where a setting can't be
    
-   [configuration.move\_type\_unsupported](/docs/errors/configuration.move_type_unsupported)
    
    Constant's type can't be a setting
    
-   [configuration.value\_invalid](/docs/errors/configuration.value_invalid)
    
    Configuration value is invalid
    
-   [configuration.value\_missing](/docs/errors/configuration.value_missing)
    
    Required configuration is missing
    
-   [conform.failed](/docs/errors/conform.failed)
    
    Package's answers don't conform to its capability
    
-   [conform.refused](/docs/errors/conform.refused)
    
    Conformance suite can't run against the provider's API
    
-   [deliveries.not\_found](/docs/errors/deliveries.not_found)
    
    No delivery or schedule run has the id given
    
-   [deliveries.unavailable](/docs/errors/deliveries.unavailable)
    
    Deliveries' database couldn't be read
    
-   [deliveries.wrong\_state](/docs/errors/deliveries.wrong_state)
    
    Delivery or schedule run isn't in a state the action applies to
    
-   [deployable.api\_unknown](/docs/errors/deployable.api_unknown)
    
    Deployable serves an API the app doesn't have
    
-   [deployable.empty](/docs/errors/deployable.empty)
    
    Deployable serves nothing and runs nothing
    
-   [deployable.invalid](/docs/errors/deployable.invalid)
    
    Deployable is written in a form `deployables:` doesn't take
    
-   [deployable.settle\_unrun](/docs/errors/deployable.settle_unrun)
    
    Route waits for follow-on work its deployable doesn't run
    
-   [deployable.target\_unknown](/docs/errors/deployable.target_unknown)
    
    Deployable's target isn't one Jadpo builds for
    
-   [deployable.target\_unsupported](/docs/errors/deployable.target_unsupported)
    
    Deployable reaches a connection its target can't run
    
-   [deployable.trigger\_unknown](/docs/errors/deployable.trigger_unknown)
    
    Deployable runs something that isn't a trigger
    
-   [deployable.unserved](/docs/errors/deployable.unserved)
    
    No deployable serves an API, or runs the background work, the app has
    
-   [format.changes\_required](/docs/errors/format.changes_required)
    
    Source file is not formatted
    
-   [format.unsafe](/docs/errors/format.unsafe)
    
    Formatting would change the file's meaning
    
-   [format.write\_failed](/docs/errors/format.write_failed)
    
    Formatted source could not be written
    
-   [install.fetch\_failed](/docs/errors/install.fetch_failed)
    
    Package's git repository or tag couldn't be read
    
-   [install.in\_use](/docs/errors/install.in_use)
    
    Package to remove is still used by the app
    
-   [install.link\_refused](/docs/errors/install.link_refused)
    
    Linked package in a CI or production build
    
-   [install.surface\_mismatch](/docs/errors/install.surface_mismatch)
    
    Package's committed surface doesn't match its code
    
-   [migration.apply\_failed](/docs/errors/migration.apply_failed)
    
    Migrations could not be applied
    
-   [migration.extension\_missing](/docs/errors/migration.extension_missing)
    
    Database lacks a PostgreSQL extension the project's migrations need
    
-   [migration.extension\_outdated](/docs/errors/migration.extension_outdated)
    
    Database's PostgreSQL extension is older than the project's queries need
    
-   [migration.store\_diverged](/docs/errors/migration.store_diverged)
    
    Database does not match the project's migrations
    
-   [publish.breaking\_change](/docs/errors/publish.breaking_change)
    
    Package's surface breaks its last release within one major version
    
-   [publish.changelog\_missing](/docs/errors/publish.changelog_missing)
    
    Package's changelog doesn't say why its new version is released
    
-   [publish.description\_missing](/docs/errors/publish.description_missing)
    
    Package's public declaration has no description
    
-   [publish.example\_failed](/docs/errors/publish.example_failed)
    
    Example in a package's description doesn't compile or doesn't hold
    
-   [publish.example\_missing](/docs/errors/publish.example_missing)
    
    Package's function has no example, or a failure it raises is shown by none
    
-   [publish.sample\_missing](/docs/errors/publish.sample_missing)
    
    Package's recipes have no sample app with one domain to compile in
    
-   [recording.failed](/docs/errors/recording.failed)
    
    Sandbox or model gave no answer to record
    
-   [recording.refused](/docs/errors/recording.refused)
    
    Answer can't be recorded through this connection
    
-   [runs.unavailable](/docs/errors/runs.unavailable)
    
    Unfinished runs' database couldn't be read
    
-   [schedules.lease\_held](/docs/errors/schedules.lease_held)
    
    Schedule is already running
    
-   [schedules.no\_tick](/docs/errors/schedules.no_tick)
    
    No tick picked up the run asked for
    
-   [schedules.run\_failed](/docs/errors/schedules.run_failed)
    
    Schedule's run failed
    
-   [schedules.unavailable](/docs/errors/schedules.unavailable)
    
    Schedules' database couldn't be read
    
-   [semantic.multiple\_suggestions](/docs/errors/semantic.multiple_suggestions)
    
    Suggestions settings are declared more than once
    
-   [suggest.record\_invalid](/docs/errors/suggest.record_invalid)
    
    Suggestions record can't be read
    
-   [suggest.share\_failed](/docs/errors/suggest.share_failed)
    
    Jadpo HQ couldn't be reached or refused what was shared
    
-   [syntax.suggestions\_duplicate\_option](/docs/errors/syntax.suggestions_duplicate_option)
    
    Suggestions setting is given twice
    
-   [syntax.suggestions\_unknown\_option](/docs/errors/syntax.suggestions_unknown_option)
    
    Suggestions settings have no such option
    
-   [test.failed](/docs/errors/test.failed)
    
    Test run failed
    
-   [test.no\_tests](/docs/errors/test.no_tests)
    
    No tests to run
    
-   [test.runtime\_start\_failed](/docs/errors/test.runtime_start_failed)
    
    Test runtime could not start
    
-   [toolchain.artifact\_write\_failed](/docs/errors/toolchain.artifact_write_failed)
    
    Generated file could not be written
    
-   [toolchain.build\_failed](/docs/errors/toolchain.build_failed)
    
    Rust compiler couldn't build the deployable
    
-   [toolchain.fetch\_failed](/docs/errors/toolchain.fetch_failed)
    
    Rust toolchain or crates couldn't be fetched
    
-   [toolchain.project\_not\_found](/docs/errors/toolchain.project_not_found)
    
    Project could not be found
    
-   [toolchain.scaffold\_destination\_exists](/docs/errors/toolchain.scaffold_destination_exists)
    
    Scaffold destination is an existing file
    
-   [toolchain.scaffold\_destination\_not\_empty](/docs/errors/toolchain.scaffold_destination_not_empty)
    
    Scaffold destination directory is not empty
    
-   [toolchain.scaffold\_name\_invalid](/docs/errors/toolchain.scaffold_name_invalid)
    
    Project destination has no valid name
    
-   [toolchain.scaffold\_read\_failed](/docs/errors/toolchain.scaffold_read_failed)
    
    Scaffold destination could not be inspected
    
-   [toolchain.scaffold\_write\_failed](/docs/errors/toolchain.scaffold_write_failed)
    
    Project scaffold file could not be written
    
-   [toolchain.source\_read\_failed](/docs/errors/toolchain.source_read_failed)
    
    Jadpo source file could not be read
    
-   [translation.exchange\_file\_invalid](/docs/errors/translation.exchange_file_invalid)
    
    Translation exchange file can't be read or written
    
-   [translation.exchange\_unit\_unknown](/docs/errors/translation.exchange_unit_unknown)
    
    Translation file holds a unit the project does not have
    
-   [type.suggestions\_value\_invalid](/docs/errors/type.suggestions_value_invalid)
    
    Suggestions setting has a value it can't take
    

## Built-in services

-   [data.file\_field\_invalid](/docs/errors/data.file_field_invalid)
    
    A `File` field's store, size or types are missing or wrong
    
-   [email.attachment\_limit](/docs/errors/email.attachment_limit)
    
    Email's attachments may exceed what its mail package accepts
    
-   [email.connection\_required](/docs/errors/email.connection_required)
    
    Action emits an email but the application names no email connection
    
-   [email.field\_unused](/docs/errors/email.field_unused)
    
    Email's field is written by no template and no subject
    
-   [email.health\_problem](/docs/errors/email.health_problem)
    
    Email's template fails a check of the mail health score
    
-   [email.partial\_invalid](/docs/errors/email.partial_invalid)
    
    Template includes a partial that doesn't exist, can't be reached or is given the wrong fields
    
-   [email.sent\_context](/docs/errors/email.sent_context)
    
    Reads `email.sent` outside a test
    
-   [email.settings\_invalid](/docs/errors/email.settings_invalid)
    
    Application's `email:` or `display_name:` is invalid
    
-   [email.template\_missing](/docs/errors/email.template_missing)
    
    Email has no template, or a template no email
    
-   [email.template\_not\_allowed](/docs/errors/email.template_not_allowed)
    
    Template does more than read fields, translate and format
    
-   [email.template\_value\_invalid](/docs/errors/email.template_value_invalid)
    
    Template writes out something that isn't text or a number
    
-   [rate\_limits.counted\_in\_memory](/docs/errors/rate_limits.counted_in_memory)
    
    Deployable built for Workers would count its rate limits in each instance's memory
    
-   [rate\_limits.store\_invalid](/docs/errors/rate_limits.store_invalid)
    
    Rate limits' store isn't a connection that can count them
    
-   [rate\_limits.store\_required](/docs/errors/rate_limits.store_required)
    
    Deployable built for Workers has nowhere to count its rate limits
    
-   [type.file\_read\_too\_large](/docs/errors/type.file_read_too_large)
    
    A whole read of a file field that can hold more than 10 MB
    

## Records and manifest

-   [record.edited](/docs/errors/record.edited)
    
    Generated record was edited by hand
    
-   [record.format\_newer](/docs/errors/record.format_newer)
    
    Record was written by a newer Jadpo
    
-   [record.out\_of\_date](/docs/errors/record.out_of_date)
    
    Generated record disagrees with the source
    

## Standard library

-   [semantic.standard\_operation\_moved](/docs/errors/semantic.standard_operation_moved)
    
    Standard-library operation has moved to another name
    
-   [syntax.percent\_ambiguous](/docs/errors/syntax.percent_ambiguous)
    
    A number, `%` and a value with no spaces could be a percentage or a remainder
    
-   [type.argument\_empty](/docs/errors/type.argument_empty)
    
    Text that may be empty where it never is
    
-   [type.argument\_negative](/docs/errors/type.argument_negative)
    
    Count or position may be negative
    
-   [type.money\_split](/docs/errors/type.money_split)
    
    Money is divided by a count
    
-   [type.password\_hash\_exposed](/docs/errors/type.password_hash_exposed)
    
    Password hash is sent, read from a request or put in a failure
    
-   [type.random\_context](/docs/errors/type.random_context)
    
    Randomness is read outside an action
    
-   [type.reserved\_variant\_name](/docs/errors/type.reserved_variant_name)
    
    Variant is called `all`, which lists an enum's variants
    
-   [type.secret\_exposed](/docs/errors/type.secret_exposed)
    
    Secret value is sent, stored, logged or read as text
    
-   [type.standard\_clash](/docs/errors/type.standard_clash)
    
    Declaration has a standard type's name
    
-   [type.standard\_exists](/docs/errors/type.standard_exists)
    
    Type has a standard type's shape under another name
    
-   [type.temporal\_format\_part\_missing](/docs/errors/type.temporal_format_part_missing)
    
    Format shows a part a local time doesn't have
    
-   [type.unit\_required](/docs/errors/type.unit_required)
    
    Number is given where a quantity needs a unit
    
-   [type.unit\_unknown](/docs/errors/type.unit_unknown)
    
    Number is written with a suffix that is no unit
    
-   [type.variant\_retired](/docs/errors/type.variant_retired)
    
    Code writes a retired code
    

## AI

-   [ai.connection\_required](/docs/errors/ai.connection_required)
    
    Action asks a model but the application names no `ai:` connection
    
-   [ai.settings\_invalid](/docs/errors/ai.settings_invalid)
    
    Application's `ai:` holds something it doesn't take, or leaves out what it needs
    
-   [data.vector\_store\_unsupported](/docs/errors/data.vector_store_unsupported)
    
    Vector field on a store that isn't PostgreSQL
    
-   [prompt.free\_text\_in\_instructions](/docs/errors/prompt.free_text_in_instructions)
    
    A free-text placeholder is written in a prompt's instructions
    
-   [prompt.placeholder\_type](/docs/errors/prompt.placeholder_type)
    
    A prompt's field is of a type a prompt can't send
    
-   [prompt.placeholder\_unknown](/docs/errors/prompt.placeholder_unknown)
    
    A prompt's text writes a field its type does not have
    
-   [prompt.placeholder\_unused](/docs/errors/prompt.placeholder_unused)
    
    A prompt's field is written nowhere in its text
    
-   [prompt.section\_missing](/docs/errors/prompt.section_missing)
    
    A prompt and its file don't make its two sections, each once and in order
    
-   [query.nearest\_exact](/docs/errors/query.nearest_exact)
    
    Nearest-neighbour order on a vector too long for an index reads every record
    
-   [query.nearest\_page](/docs/errors/query.nearest_page)
    
    Nearest-neighbour query returns a page
    
-   [query.nearest\_type](/docs/errors/query.nearest_type)
    
    Nearest-neighbour order measures from something it can't
    
-   [query.nearest\_unindexed](/docs/errors/query.nearest_unindexed)
    
    Nearest-neighbour order on a vector with no fixed length
    
-   [semantic.ai\_budget\_missing](/docs/errors/semantic.ai_budget_missing)
    
    Application's `ai:` sets no daily limit
    
-   [semantic.ai\_dimensions\_mismatch](/docs/errors/semantic.ai_dimensions_mismatch)
    
    Vector type an embedding is asked for as has a length other than `embedding_dimensions:`
    
-   [semantic.ai\_field\_refused](/docs/errors/semantic.ai_field_refused)
    
    A field marked `to_models: false` reaches a prompt or an embedded text
    
-   [semantic.ai\_field\_unmarked](/docs/errors/semantic.ai_field_unmarked)
    
    A marked field's value is stored in a field without its marks
    
-   [semantic.ai\_model\_literal](/docs/errors/semantic.ai_model_literal)
    
    A `ModelId` is written out anywhere but a setting's `default:`
    
-   [semantic.ai\_output\_type](/docs/errors/semantic.ai_output_type)
    
    Type a model is asked to answer as is one no model's answer can be
    
-   [semantic.ai\_personal\_data\_not\_allowed](/docs/errors/semantic.ai_personal_data_not_allowed)
    
    Personal data reaches a model in a category `ai: { personal_data: { allowed: } }` doesn't list
