Issues raising objections inside a forked thread in phase_ready_to_end funciton

It would help if you showed the actual message to to know if there is a simulator bug.

But in any case, you need to raise the objection to the phase immediately, before it ends.
And usually you need to only do this for a specific phase

function void phase_ready_to_end(uvm_phase phase);
 if(phase.get_name == "run")begin
 phase.raise_objection(this, "Scoreboard objection");
   fork
      begin
         wait(vif.rst);
         phase.drop_objection(this, "Scoreboard objection");
       end
    join_none