Similar to bug 59039 when loading an .ods document with an array formula that in one of it's cells has an error result, that result is not preserved until the formula is recalculated. Steps to reproduce:
1. A1: 1
2. A2: =1/0
3. enter array formula in A3:A4 {=A1:A2}
=> result in A4 is #DIV/0!
4. save as .ods
5. reload
6. notice error in A4 is displayed left justified as string
7. in some cell enter =ISERROR(A4)
=> result FALSE, should be TRUE
Is correct only after formula in A3:A4 was forced to recalculate, e.g. Ctrl+F9

@Eike: Because Markus is already assigned, I suppose this behavior is already tested and confirmed. Can we set this bug as NEW if so? Or do you want an independent test for this bug?
Kind regards,
Joren

Ok, we have several unrelated bugs here with the matrix handling that add together to a lot of nasty behavior.
First thing is that matrix formula cells are not registered in the formula tree.
Fixing that shows another bug because we are setting the formula string for CompileXML which means we have no access to the real ScTokenArray during import wich we would need for the ScFormulaCell::StartListeningTo call. And finally there is the here mentioned problem of error string handling in formula cells which needs a fix for the other two bugs first.
I have already a fix for the missing calls to StartListeningTo, but the problem with storing the formula string instead of the token array needs a bit of inspection. I hope that we can just skip the problem in ScMyTables::AddMatrixRange and compile the formula already to a normal ScTokenArray.

I finally went a little bit different road. We are now forcing a recalculation of the matrix if it contains a possible error value. We might try to switch in the future to only forcing a recalculation of the cells with error values but we need to fill the ScMatrix for this manually with values.