I'm not surprised that the error type is not supported as direct output; you would need to use "stop flow" to get it to the cloud or:
- convert it to a text variable and output it as text (can be formatted as csv or JSON)
- or convert that JSOn variable into a custom object and return it as a custom object output
When it comes to lists, you can return "genera;" values, so a list of text, no a list of objects.
So instead of adding file objects, add their full path.

I did test this:
SET OutBoolean TO InBoolean
SET OutDataTable TO InDataTable
SET OutNumber TO InNumber
Folder.GetFiles Folder: $'''C:\\Test''' FileFilter: $'''*.txt''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.NoSort SortDescending1: False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> TempList
LOOP FOREACH File IN TempList
Variables.AddItemToList Item: File.FullName List: OutFilesList
END
BLOCK test
ON BLOCK ERROR
END
System.RunApplication.RunApplicationAndWaitToLoad ApplicationPath: $'''ThisAppDoesNotExist.exe''' WindowStyle: System.ProcessWindowStyle.Normal Timeout: 5 ProcessId=> AppProcessId WindowHandle=> WindowHandle
END
ERROR => temperror Reset: True
SET OutTextLastError TO $'''{
\"ActionIndex\":\"%temperror.ActionIndex%\",
\"ActionName\":\"%temperror.ActionName%\",
\"ErrorDetails\":\"%temperror.ErrorDetails%\"
}'''
Variables.ConvertJsonToCustomObject Json: OutTextLastError CustomObject=> OutErrorCustomObject