NEKOVA docs
NEKOVA / Docs / Reference

Error Codes

Every error and warning code NEKOVA can report, and what each one means.

Runtime errors (raised while a program runs)

Code Name Meaning
E001 Variable Not Found A name was used before it was defined. Comes with a "did you mean?" suggestion (real difflib similarity check) when a similarly-named variable is in scope.
E002 Syntax Error The lexer or tokenizer hit something it couldn't read — includes inconsistent indentation that doesn't match any enclosing block.
E003 Parse Error The parser understood the tokens but not their arrangement.
E004 Type Error An operation got a value of the wrong type — including the "5" + 3 string/number mismatch.
E005 Runtime Error The general-purpose runtime error — most custom interpreter errors (destructuring failures, const reassignment, keyword-argument mistakes) surface under this code.
E006 Division By Zero Self-explanatory.
E007 Module Not Found An import/use couldn't find its target.
E008 Index Out of Range A list index (or negative index) fell outside the list's bounds.
E009 Key Not Found A dict key or destructured key wasn't present — lists the keys that were available.
E010 Maximum Call Depth Exceeded NEKOVA's own call-depth tracking (500 by default) caught unbounded recursion, and reports the exact depth reached.
E011 Reserved Keyword Used as Name A variable or parameter tried to reuse a language keyword (e.g. naming something fetch).

Checker warnings (nekova check)

These don't stop your program from running — they're surfaced by the static checker.

Code Meaning
W001 A name is used but may not be defined anywhere in scope.
W002 A variable is defined but never used.
W003 A task was called with the wrong number of arguments.
W005 A built-in name (like len or str) was shadowed by a local variable.
W006 Unreachable code — statements after a return/raise/break that can never run.
W009 A match block has no else arm and may not cover every case.

Reading an error message

Every NEKOVA error follows the same shape: what happened, why, and what to check next — never a bare stack trace. For example:

error[E010]: Maximum Call Depth Exceeded
  Task 'loop_forever' exceeded the maximum call depth (500 nested calls).

If you hit a raw Python traceback instead of this format, that's considered a bug in NEKOVA itself worth reporting — see the Changelog for the ongoing audit of exactly this class of issue.