Besides the above, I also noticed that the parser also fails when calling a %SYS routine as in:

do DecomposeStatus^%apiOBJ(sc,.err,"-d")

@Victor Gordillo please clarify what you mean by "the parser fails". Maybe with a screenshot?

InterSystems deletes the source code of many %-routines before shipping, including %apiOBJ. Perhaps this is causing the problem you are seeing.

Probably our biggest pain point related to InterSystems software upgrade, and one we have to try and make sure sites using our Deltanji source code management tool are aware of, is that the procedure can result in class dictionaries of remote databases being upgraded to a dictionary version that the instance hosting the databases cannot handle.

Our Deltanji documentation now includes this paragraph in the section about InterSystems platform upgrades:

Before upgrading an InterSystems IRIS, Caché or Ensemble instance we strongly recommend that you first disable all ECP connections the instance makes to other instances. Leave these connections disabled until after you have completed the upgrade, including execution of any post-upgrade steps recommended by InterSystems such as the recompilation of code in all namespaces. These precautions should prevent the upgrading instance from inadvertently upgrading class dictionary entries and routines on remote instances which may still be running an earlier InterSystems platform version.