SQLite Forum

How to distinguish fatal errors
Login
It would be a bug if any of the SQLITE_FULL errors were not "recoverable" in the sense that the database continues to have the ACID attributes. Clearing the underlying resource shortfalls should allow the database to be used per its basic API. Not clearing them might lead to success (depending on other system activity) or the same "recoverable" error.

A separate question is how to distinguish among the error's causes. Most operating systems provide a way to discover free space on filesystems, which should allow you to distinguish between cause b and the others. And cause b can be ascertained by using the [max_page_count pragma](https://sqlite.org/pragma.html#pragma_max_page_count) and [page_count pragma](https://sqlite.org/pragma.html#pragma_page_count) judiciously. (This latter approach will need to take into account how many pages your failed insert or update was going to use.)