In reply to hctseng:
My recommendation is to not have any objections in the scoreboard to prevent the scenario that you are seeing.
Instead, you should end the test when all of your sequences have completed, set the drain_time appropriately to allow all transactions to complete in the DUT, then query the scoreboards to determine if they have accounted for everything that they expected to see.
If the scoreboards haven’t seen all of the expected transactions, they can then generate an error.