If your company is integrated with QuickBooks Online, and you are seeing the below error on your invoices, it may be to do with the Categories setting on your Integrate page.
Error: Unable to cast object of type 'Intuit.Ipp.Data.AccountBasedExpenseLineDetail' to type 'Intuit.Ipp.Data.ItemBasedExpenseLineDetail'.
To clear the error, you should first navigate to the Integrate page, located on the left hand side of your company homepage:
Once on this page, click Disconnect:
You will then be prompted to connect the integration again. Once the company is reconnected to QuickBooks Online, scroll down to the 'Line Items on Purchases Invoices' heading on the Integrate page (shown below). Change this setting to Prouct Codes/Services, click Save. Then change the setting back to Account Codes and click Save again.
Once done, try to publish the affected invoice again!