I created register adapter to convert bus transaction to my sequence item but when i do a mirror on my register after a write mirror fails giving error read value is different from mirror value

i write my register with 'hdeadbeef value and then do a mirror which reads the same register. i get an error stating my read value is not same as mirror value. but my read value is same as what i wrote in previous step which is 'hdeadbeef but my mirror value is 0. how do i debug this issue?
UVM_INFO reg/uvm_reg.svh(2926) @ 20800000: reporter [RegModel] Field DATA (SCRATCH_0[31:0]) mismatch read=32’hdeadbeef mirrored=32’h0

In reply to shahparth08:

There could be lots of different reason, but the most probable is you have not set up register prediction correctly. You might want to read this: Accenture | Let there be change

In reply to dave_59:

Thanks Dave,

i was able to figure out the issue. i was under the impression that the auto predict is “ON” by default but its the other way around. so if you are planning on using mirror to do self checks for your read, it needs to have set_auto_predict(1) explicitly.