what you're seeing is actually two separate things happening — the core PO transaction commits successfully to the database, but something in the post-processing layer throws the exception. that's why the status shows confirmed/received after refresh even though the UI showed a cancellation. the error itself is a .NET reflection wrapper which means the real cause is hiding underneath it.
most common culprit in this scenario is print management — the PO confirmation or receipt posting triggers a document generation step after the main transaction commits, and if that PDF conversion or SSRS report rendering fails, you get this exact behaviour. quick test — try posting with print confirmation set to No and see if it goes through clean. if it does, your issue is in the document routing or print management setup, not the PO logic itself.
if disabling print doesn't help, check System Administration → Inquiries → Batch Jobs around the time of the error — the inner exception will be there with the actual stack trace rather than the generic wrapper message.
also worth running the purchase order distribution reset under Procurement and Sourcing → Periodic Tasks → Clean Up to rule out any orphaned accounting distributions causing the post-processing subscriber to crash.
given you're on 10.0.45, also worth checking if the latest quality updates are applied — Microsoft patched several document handling issues in point releases for that version.