https://cirrus-ci.com/task/5603470202896384?logs=ci#L2681
CBlock block;
        chain().findBlock(block_hash, FoundBlock().data(block));
        // Find 
        // is sl
        bool block_still_active = false;
        bool next_block = false;
        uint256 next_block_hash;
        chain().findBlock(block_hash, FoundBlock().inActiveChain(block_still_active).nextBlock(FoundBlock().inActiveChain(next_block).hash(next_block_hash)));
        if (!block.IsNull()) {
            LOCK(cs_);
            if (!block_still_active) {
                // Abort 
                // marki
                result.last_failed_block = block_hash;
                result.status = ScanResultFAILURE;
                break;
            }
            for (size_t posInBlock = 0; posInBlock < block.vtx.size(); ++posInBlock) {
                SyncTransaction(block.vtx[posInBlock], TxStateConfirmed{block_hash, block_height, static_cast<int>(posInBlock)}, fUpdate, /*rescan
            }
            // scan 
            result.last_scanned_block = block_hash;
            result.last_scanned_height = block_height;
            if (save_progress && next_interval) {
                CBlockLocator loc = m_chain->getActiveChainLocator(block_hash);
                if (!loc.IsNull()) {
                    WalletLogPrintf("Saving scan progress %d.\n", block_height);
                    WalletBatch batch(GetDatabase());
                    batch.WriteBestBlock(loc);
                }