Error after internal transaction from t-addr to z-addr. Deamon is not working

Hello, I encountered a strange error. After I did transaction from my t-addr to z-addr daemon crashed and when I am trying to run it again it’s working for a while and then throwing error:

zcashd: wallet/wallet.cpp:653: void CWallet::IncrementNoteWitnesses(const CBlockIndex*, const CBlock*, ZCIncrementalMerkleTree&): Assertion `(nd->witnessHeight == -1) || (nd->witnessHeight == pindex->nHeight - 1)’ failed.

Is there any way now to recover my wallet?

“zcashd -reindex”
will recover it.
But I don’t recommend you to use z-addr unless you really have to. It’s not working as expected most times.

Thanks for your suggestion. Unfortunatelly, after runing “zcashd -reindex”, I received exactly the same error: zcashd: wallet/wallet.cpp:653: void CWallet::IncrementNoteWitnesses(const CBlockIndex*, const CBlock*, ZCIncrementalMerkleTree&): Assertion `(nd->witnessHeight == -1) || (nd->witnessHeight == pindex->nHeight - 1)’ failed.
Aborted

The only difference was it was rather immediately in this case.

(if this can help: error is always after validating 22nd or 23rd transaction)

You might want to check the following issue: Daemon crashes during startup while loading wallet · Issue #1794 · zcash/zcash · GitHub

Seems like wallet.dat file corrupted.
If you have backup of normal wallet.dat, then replace that file and -reindex daemon.

If you don’t have wallet.dat backup file then you would have to repair it manually.

“dump db, reload db, salvagewallet and then do a full rescan”