Thanks @Margo !
You are correct. It might be because the lookup field is not fully loaded under fd.spRendered function.
Your workaround works for Lookup field.
However, the same approach doesn't seem to apply to the Number field.
There is no 'enable' in my code—I believe it originates from Plumsail's internal code when my script tries to set .disabled = true, as the error disappeared when I comment out that line.
However, it seems the issue has been resolved. The set disabled functionality is now working as expected, and even the lookup field no longer requires the above workaround. The original code when I posted this question is now functioning correctly.