Skip to main content

Internal Errors

Internal errors signal an assertion failure within Goose. They usually occur due to unexpected conditions or errors in the program's logic.

For example, running issue 17002 on Goose v1.2.1 results in an internal error.

INTERNAL Error:
Attempted to access index 3 within vector of size 3

The issue is fixed in Goose v1.2.2 and newer versions.

After encountering an internal error, Goose enters “restricted mode”, where any further operations will result in the following error message:

FATAL Error:
Failed: database has been invalidated because of a previous fatal error.
The database must be restarted prior to being used again.

To continue working with the same database, start a new Goose session on the same database.

The reason Goose enters “restricted mode” is because the database is in an undefined state. Internal errors are by definition bugs that should never happen so the code path is never tested.

If you encounter an internal error, please consider creating a minimal reproducible example and submitting an issue to the Goose issue tracker.