PreArm : Param Storage Failed, Storage Healthy check?

Hello all.
I have a question on a “PreArm Check”.

I’m using modified firmware based on Copter 4.0.7,
I added ROI function for my specific Gimbal CAM.
And then, when I send a ROI target to my drone via MAVLink, the drone failed to pass the prearm check.
There is an error message “PreArm : Param Storage Failed” on MP.
It only happened when I using ROI.

I found that the message is displayed by prearm check in AP_Arming.cpp, “system_checks” function.
In the function,
if “>healthy()” returns false, the message should displayed.
I found the “>healthy()” on Storage.h in AP_HAL library.
But the function healthy always returns true.

How can it possible that the “>healthy()” returns false?

If you do not have an SDcard or the SDcard is damaged, it will give that error.

Thanks for your reply

But, I tried with 2 Pixhawk Orange.
The error just occurs when I send ROI target.
I also format sd card and change to other one

The message line is this :

And in the line, ‘if’ calling ‘>healthy()’.
The function ‘healthy()’ is declared and defined in AP_HAL/Storage.h.

The function seems always return true, and there is no other virtual function named ‘healthy’ in AP_HAL library.