fatalErrorMessage = "fromCompactAddress: Impossible: DecoderErrorDeserilizationFailure
When a node stops in the normal way, it first completes all I/O operations and then aborts the connections. This achieves the integrity of records in its database. If the connection to the network is broken while I/O operations are being performed, the data may be distorted. And then at a second attempt to start the node a deserialization error occurs.
If you have such an error, the recipe to ensure that it does not bother you again, the following:
1) Delete completely the folder Daedalus Mainnet. (But make sure you know your SEED folder first).
2) Create a new Daedalus Mainnet folder in the same directory as the old one.
3) Run Daedalus. It will ask you to restore your wallets. Restore via SEED phrase Daedalus or by connecting hardware, if this is the type of wallet you use. This will start a synchronization with the network. But you should not wait until it is completely finished. Close Daedalus when the percentage of synchronization will reach some x-value, for example 5 or 8
4) Back up your Daedalus Mainnet folder.
5) Start Daedalus again and again wait until synchronization reaches the next X value. Close Daedalus.
6) Copy the Daedalus Mainnet folder and replace your old backup with the new one.
7) Repeat steps 5 and 6 until the synchronization is 100%.
If at any of the steps the node cuts the connection itself so that the deserialization error resumes, then delete the Daedalus Mainnet folder and put your backup in its place. Noda will not start from scratch, but from the place that corresponds to this backup.
The moral of this fable is to have a backup of the working folder Daedalus Mainnet at hand, so that in case the node fails to start due to a deserialization error, you can give it the same backup.