What is common.run object and when dose it try to drop objection?

I am just trying out a simple uvm based test bench. I compiles fine and when i try to run i get the following error. I wanted to get some idea on what could be causing this issue and where i can start looking in order to fix this.

UVM_ERROR @ 50: run [TEST_DONE_NOHIER] A non-hierarchical object, ‘common.run’ () was used in a call to uvm_test_done.drop_objection(). For this objection, a sequence or component is required.
UVM_FATAL @ 50: run [OBJTN_ZERO] Object “common.run” attempted to drop objection ‘run’ count below zero

Sounds like you are using the uvm_test_done objection which came from OVM originally and is not recommended for new projects.

Refer to OVM2UVM | Verification Academy for advice on this feature.

Refer to cookbook pages EndOfTest | Verification Academy and Objections | Verification Academy for more up to date advice on using objections.

Refer to How to Terminate UVM simulation? | Verification Academy and 'Do not use global_stop_request()' and 'Do not use uvm_test_done', can anyone please elaborate with examples? | Verification Academy for more discussion in the forum on this question