Chkdsk caused database corruption

Greetings,

I need help figuring out what happened in the process of the chkdsk that caused it to have my WhatPulse database (est. Oct 20, 2021) corrupted. A chkdsk was run recently on my PC and it significantly gave these entries pertaining to WhatPulse which I gathered from the event log:
Recovering orphaned file WHATPU~1.DB- (543556) into directory file 179032.
Recovering orphaned file whatpulse.db-journal (543556) into directory file 179032.

After that in the next boot, WhatPulse gave a critical database error which prompted me to wipe the database new.
Checking the app log gave these errors:

Database check: “*** in database main ***\nMain freelist: freelist leaf count too big on page 166\nMain freelist: invalid page number 168184320\nOn tree page 1199 cell 0: invalid page number 27312\nOn tree page 1199 cell 274: invalid page number 27274\nOn tree page 1199 cell 273: invalid page number 27256\nOn tree page 1199 cell 272: invalid page number 27174\nOn tree page 1199 cell 269: invalid page number 26974\nOn tree page 1199 cell 265: invalid page number 26826\nOn tree page 1199 cell 262: invalid page number 26713\nOn tree page 1199 cell 259: invalid page number 26650\nOn tree page 1199 cell 257: invalid page number 26573\nOn tree page 1199 cell 254: invalid page number 26424\nOn tree page 1199 cell 252: invalid page number 26262\nOn tree page 1199 cell 251: invalid page number 26227\nOn tree page 1199 cell 250: invalid page number 26180\nOn tree page 1199 cell 243: invalid page number 26104\nOn tree page 1199 cell 242: invalid page number 26048\nOn tree page 1199 cell 241: invalid page number 25940\nOn tree page 1199 cell 240: invalid page number 25920\nOn tree page 1199 cell 238: invalid page number 25897\nOn tree page 1199 cell 236: invalid page number 25832\nOn tree page 1199 cell 235: invalid page number 25686\nOn tree page 10211 cell 0: invalid page number 27267\nOn tree page 10211 cell 114: invalid page number 27197\nOn tree page 10211 cell 113: invalid page number 27060\nOn tree page 10211 cell 111: invalid page number 27001\nOn tree page 10211 cell 110: invalid page number 26942\nOn tree page 10211 cell 109: invalid page number 26829\nOn tree page 10211 cell 107: invalid page number 26720\nOn tree page 10211 cell 106: invalid page number 26616\nOn tree page 10211 cell 102: invalid page number 26592\nOn tree page 10211 cell 101: invalid page number 26572\nOn tree page 10211 cell 98: invalid page number 26520\nOn tree page 10211 cell 97: invalid page number 26332\nOn tree page 10211 cell 96: invalid page number 26178\nOn tree page 10211 cell 95: invalid page number 26088\nOn tree page 10211 cell 92: invalid page number 26012\nOn tree page 10211 cell 89: invalid page number 25944\nOn tree page 10211 cell 83: invalid page number 25898\nOn tree page 10211 cell 82: invalid page number 25825\nOn tree page 10211 cell 81: invalid page number 25752\nOn tree page 10211 cell 79: invalid page number 25628\nOn tree page 52 cell 124: invalid page number 27059\nOn tree page 52 cell 120: invalid page number 26103\nOn tree page 53 cell 0: invalid page number 27257\nOn tree page 53 cell 95: invalid page number 26090\nOn tree page 53 cell 94: invalid page number 25486\nOn tree page 50 cell 196: invalid page number 27201\nOn tree page 50 cell 194: invalid page number 26962\nOn tree page 50 cell 192: invalid page number 26890\nOn tree page 50 cell 188: invalid page number 26513\nOn tree page 50 cell 181: invalid page number 25917\nOn tree page 23507 cell 0: invalid page number 27327\nOn tree page 23507 cell 51: invalid page number 27249\nOn tree page 23507 cell 50: invalid page number 26960\nOn tree page 23507 cell 49: invalid page number 26889\nOn tree page 23507 cell 48: invalid page number 26547\nOn tree page 23507 cell 47: invalid page number 26456\nOn tree page 41 cell 0: invalid page number 26659\nOn tree page 41 cell 0: invalid page number 26658\nOn tree page 42 cell 0: invalid page number 26576\nOn tree page 42 cell 9: Child page depth differs\nOn tree page 35 cell 0: invalid page number 27288\nOn tree page 35 cell 0: invalid page number 27287\nOn tree page 24712 cell 0: invalid page number 27325\nOn tree page 24712 cell 52: invalid page number 27246\nOn tree page 24712 cell 51: invalid page number 27173\nOn tree page 24712 cell 50: invalid page number 26964\nOn tree page 24712 cell 48: invalid page number 26888\nOn tree page 24712 cell 47: invalid page number 26759\nOn tree page 24712 cell 44: invalid page number 26677\nOn tree page 24712 cell 40: invalid page number 26478\nOn tree page 24712 cell 39: invalid page number 26412\nOn tree page 24712 cell 35: invalid page number 26347\nOn tree page 24712 cell 30: invalid page number 26298\nOn tree page 24712 cell 28: invalid page number 26074\nOn tree page 24712 cell 27: invalid page number 25953\nOn tree page 24712 cell 26: invalid page number 25873\nOn tree page 24712 cell 15: invalid page number 25724\nOn tree page 24712 cell 13: invalid page number 25538\nOn tree page 24712 cell 11: invalid page number 25495\nOn tree page 31 cell 0: invalid page number 27218\nOn tree page 31 cell 3: invalid page number 26064\nOn tree page 32 cell 0: invalid page number 26980\nOn tree page 32 cell 5: invalid page number 26443\nOn tree page 20431 cell 0: invalid page number 27341\nOn tree page 20431 cell 437: invalid page number 27313\nOn tree page 20431 cell 435: invalid page number 27247\nOn tree page 20431 cell 433: invalid page number 27114\nOn tree page 20431 cell 432: invalid page number 27018\nOn tree page 20431 cell 430: invalid page number 27008\nOn tree page 20431 cell 425: invalid page number 26907\nOn tree page 20431 cell 424: invalid page number 26855\nOn tree page 20431 cell 423: invalid page number 26757\nOn tree page 20431 cell 422: invalid page number 26716\nOn tree page 20431 cell 418: invalid page number 26692\nOn tree page 20431 cell 412: invalid page number 26561\nOn tree page 20431 cell 409: invalid page number 26435\nOn tree page 20431 cell 408: invalid page number 26401\nOn tree page 20431 cell 406: invalid page number 26291”

For some reason, the follow-up logs seem to imply that the backup database is also corrupted indicating those same errors which were weird. At some point, I did think that something happened on the whatpulse app itself on the chkdsk that made it not able to read the database as usual or the database when referenced got corrupted and copied to the backup datase. But based on the chdsk, it may be that the two different database files were identified as one and then were merged together by the chkdsk.

With the dialog prompting to wipe out, I keep pressing no. It so happen that I, unfortunately, did not have a backup and my PC has a cleared restore point.

I did have in mind to manually fix the database and I actually tried to attempt in doing so by going at it on DB Browser for SQLite but I cannot figure out what the page and cell # pertain to when it comes to the viewer with the plan of just deleting these page and cell entries initially. I also tried to attempt to find what and where the directory file 543556 and 179032 are in the windows explorer according to the chkdsk log but failed.

Given these, can somebody help me figure out what went wrong in the chkdsk, and is there anything that I can do to actually edit things out on the database to uncorrupt it?

Thank you in advanced for taking the time.

Hi,

Modifying the database is not going to go over well, as you can see… :slightly_frowning_face:

WhatPulse tries to recover it when it starts and detects a corrupt database, so there’s already been some effort to recover it. DB Browser doesn’t have it, but there’s a recover command in SQLite itself. If you know how to use it, you might be able to recover using this (no guarantees):

sqlite3 whatpulse.db ".recover" | sqlite3 new.db

It doesn’t always work, and if not, use this:

sqlite3 whatpulse.db ".dump" | sqlite3 new.db

That should hopefully recover the database except for the corrupt bits. If it works, rename the new.db to whatpulse.db.