Thank you for your message.
The DocumentEvent which you mentioned is the correct one you need to actually use. This event gets fired whenever a document is changed and it is available. I have seen very similar error in the past and actually it was fixed in some of the hotfixes so if you are using version 8 please apply the latest hotfix which should fix this.
Also a note - if you want to capture publish event you can use the WorkFlowEvents.Publish or any other event which you can find here