[GNC] Unable to open GnuCash file: "No suitable backend was found for <FILE>."
Tomer Altman
me at tomeraltman.net
Fri Jul 14 02:52:28 EDT 2023
On 7/13/23 8:55 AM, john wrote:
>
>
>> On Jul 13, 2023, at 01:34, Tomer Altman <me at tomeraltman.net> wrote:
>>
>> On 7/12/23 6:26 PM, john wrote:
>>>
>>>
>>>> On Jul 12, 2023, at 16:16, Tomer Altman <me at tomeraltman.net> wrote:
>>>>
>>>> Hi everyone,
>>>>
>>>> Due to filesystem errors, I had to reinstall MacOS on my 2015
>>>> Macbook Air (current OS version: Monterey 12.6.7). After doing so,
>>>> and restoring my files from a TimeMachine backup using Migration
>>>> Assistant, I started getting this error when trying to open my
>>>> accounting file:
>>>>
>>>> "No suitable backend was found for <FILE>."
>>>>
>>>> (where "<FILE>" is a stand-in for the actual file name)
>>>>
>>>> I was at the time using a version of GnuCash from December 2022. I
>>>> then reinstalled using the installer available from gnucash.org
>>>> (current version: "5.3+(2023-06-26)" ). Unfortunately, the error
>>>> persists.
>>>>
>>>> Looking at this error message in the mailing list archives, it
>>>> seems like this has something to do with using the SQLite back-end.
>>>> I looked at the 'environment' text file, and it is implementing
>>>> already the environment variable recommended as a fix:
>>>>
>>>> GNC_DBD_DIR={SYS_LIB}/dbd
>>>>
>>>> It seems like my install is still unable to find the libraries that
>>>> it needs, though.
>>>>
>>>> It's unclear to me how to diagnose which version of the back-end my
>>>> file is using, since I cannot open it. Using 'file' and 'head'
>>>> shows that it is not XML, and I am unable to decompress the file
>>>> using Gzip. I'm also unable to open it using the sqlite3 command
>>>> line tool.
>>>>
>>>> So, two questions:
>>>>
>>>> 1. What's the correct way to verify the back-end type using
>>>> something other than GnuCash itself?
>>>>
>>>> 2. What is wrong with my fresh install that is preventing me from
>>>> opening up the file?
>>>>
>>>> Thanks in advance for any and all advice and assistance!
>>>
>>> If it's a SQLite file you can open it with sqlite3, provided by
>>> macOS. Just open Terminal and run
>>> sqlite3 /path/to/my/gnucash/file
>>> You can use the `.tables` command to list the tables and `.schema
>>> <tablename>` to show the structure and compare it with
>>> https://wiki.gnucash.org/wiki/SQL.
>>>
>>> 99% of the time when users report this problem it's because they're
>>> trying to open a log file or a .gcm file instead of their actual book.
>>>
>>> Regards,
>>> John Ralls
>>>
>> Hi John,
>>
>> Thank you very much for taking the time to reply. I appreciate it.
>>
>> I've tried doing what you are suggesting. Let's say that my "<FILE>"
>> name is "foo.gnucash". When I type the following:
>>
>> sqlite3 foo.gnucash
>>
>> > .tables
>>
>> I get:
>>
>> "Error: file is not a database"
>>
>> I thought to myself, "Perhaps the SQLite3 file was corrupted?" So I
>> went to a TimeMachine backup of the directory from April (before any
>> issues with my laptop), and copied over foo.gnucash to a temporary
>> directory. This file would open successfully with GnuCash. Using the
>> command line, I see that 'file' correctly identifies it as a gzip
>> compressed file.
>>
>> So it seems that this was an issue with the foo.gnucash file getting
>> corrupted, perhaps from the filesystem errors that I was
>> experiencing. Thanks for prompting me to debug this further. I'll
>> restore my file using the *.gnucash backup files, and by adding in
>> the relevant log files.
>>
>> If I may be so bold as to suggest a UI improvement: Telling the user
>> "No suitable backend was found for <FILE>" implies that the file is
>> fine, it's just that there's no back-end to support it. That
>> impression was bolstered by the mailing list discussion of missing
>> library paths. I'd suggest wording that makes it clear that the
>> *FILE* is the issue, as in it's either the wrong type, or it is
>> corrupted. Perhaps, "<FILE> is not a recognized GnuCash formatted file."
>>
>
> Tomer,
>
> Good that you sorted it. Note though that if it's gzip-compressed it's
> an XML file, not a sqlite3 database. Does `file` on the apparently
> corrupted gnucash file claim that it's a sqlite3 database?
>
> Regards,
> John Ralls
>
>
When I use the `file` command on the corrupted file, it just reports it
as "data". It's a binary file, but not recognized as being in Gzip format.
~T
--
Please do not send me sensitive information (e.g., passwords, personal details, financial/health information) via email, as it is not secure.
Please contact me to determine the best way to transfer sensitive information safely. Thank you!
More information about the gnucash-user
mailing list