Your approach is correct. I created a small test and I got the same error as you only if I tried to hide the PAGE that contained the current INPUT ARRAY with focus. If the PAGE you were trying to hide contained an INPUT ARRAY that was not the current focus element then that PAGE could be hidden.
The error message predates Multi-Dialog and prevents you hiding every column of an INPUT ARRAY, or else you end up in a situation where there is no element to attach the focus (the INPUT ARRAY does not magically turn into a DISPLAY ARRAY in such circumstances). Wether it should apply here or not I'll leave upto the development team.
I note that if you have two fields in an INPUT, you can hide the field that has the focus and focus moves to the next field in the tabindex, so you could argue that the same could apply here. If you have two INPUT ARRAY's in a multi dialog, should you be able to hide the first INPUT ARRAY if that has the focus and have the focus move to the second INPUT ARRAY? However note what happens with any field or row validation, typically you will place the cursor back in that field, and this is problematic if you have just hidden it.
My current thought is that you should avoid attempting to hide the page containing the INPUT ARRAY that has the focus. So if trying to hide the first page on initial entry, then you may need
BEFORE DIALOG
IF page1 hidden THEN
CALL DIALOG.setNextField("scr2.field")
CALL ui.Form.setElementHidden("page1")
END IF
to shift focus before page is hidden.
and then logic such as to disable hiding of the current page
BEFORE INPUT -- before input array
CALL DIALOG.setActionActive("hidePageX", FALSE)
AFTER INPUT
CALL DIALOG.setActionActive("hidePageX", TRUE)
Reuben