You have an object launch point automation script on initialize that has OUT or INOUT variables defined on the script. Generally speaking, you don't want to use initialize launch point on the object but rather the attribute you are trying to set. This is because the object initialize fires frequently (such as the list page, table download, etc.) when you may not even be displaying the data. If this requires opening additional sets, reaching out to external systems, or even performing certain calculations, you'll negatively impact performance of your application.
I would look for any automation script you have on INVOICE initialize and look to see if you need the logic for this use case. If you don't need it for this use case but want to keep the automation script on object initialize, you can check that it's a table download by the following code:
if mbo.getThisMboSet().isDownloadSet():