# Types of errors
HyperFormula returns an error when a formula cannot be processed
properly. To make it easier for a user, each kind of error has its
specific error value. For instance, HyperFormula displays the
#DIV/0! error when a user tries to divide a number by zero, or
#NAME! when the called function is not registered in the reference
of functions.
Depending on the reason for the problem, you will see the error's associated message as listed in the table below. An error can contain an additional message property. Errors are localized according to the language settings.
| Value | Type | Description |
|---|---|---|
| #DIV/0! | Division by zero | It occurs when a formula tries to divide by zero. |
| #N/A | The value is not available | It indicates that the value you are looking for is not available for the formula. Most typically this error is thrown by the LOOKUP -type functions. |
| #NAME? | Invalid name | It means that HyperFormula can't recognize the name of the formula or values used in a formula. |
| #NUM! | Invalid number | This error arises when your formula contains an invalid number. |
| #REF! | Invalid reference | It occurs when a formula contains an invalid reference. It is one of the most common errors users encounter when working with spreadsheets. |
| #VALUE! | Wrong type of argument | It occurs when a formula tries to improperly use different types of data. For example, you will see this error when you will try to add a string to a number. |
| #CYCLE! | Circular reference | It occurs when a formula refers to its own cell, both directly and indirectly. |
| #ERROR! | An error occurred | It indicates that there is an unknown error in a formula. |
| #LIC! | Invalid license key | It occurs when the license key is invalid, expired, or missing. |
| #SPILL! | No space for array result | It occurs when an array formula's result would overwrite one or more non-empty cells, so it has nowhere to spill into. |
# Error messages and explanations
An error's message property states the specific cause within its type — for
example, distinguishing why a formula returned #NUM! rather than only that it
did. HyperFormula does not turn that message into a longer, plain-language
explanation, and does not call out to a language model to generate one. An
application built on top of HyperFormula that wants to rephrase an error for its
end users — in natural language, or translated beyond the languages HyperFormula
ships with — should do so at the application layer, using the type and
message HyperFormula already provides as its input.