I'm new to this so please forgive my ignorance.
I'm getting the exception when:
- insert an Opportunity
- insert a ContentVersion
- post the new ContentVersion to the Opportunity's chatter feed
- delete the Opportunity
Does anybody know why, and if so, how to overcome the exception?
I am using API version 26.0
Thanking you in advance
private static void TestOpportunityDeletion()
// create an opportunity
Opportunity opp = new Opportunity() ;
opp.Name = 'Test Name' ;
opp.StageName = 'Test Stage Name' ;
opp.CloseDate = Date.Today() ;
insert opp ;
// attach a document to its chatter feed
ContentVersion doc = new ContentVersion() ;
doc.Title = 'Test Version' ;
doc.PathOnClient = 'test version.docx' ;
doc.VersionData = Blob.ValueOf( 'test content' ) ;
doc.Origin = 'H' ;
insert doc ;
FeedItem post = new FeedItem() ;
post.Type = 'ContentPost' ;
post.ParentID = opp.Id ;
post.RelatedRecordID = doc.id ;
insert post ;
// delete the opportunity
delete opp ;
when attempting to delete a list of FeedItems I'm getting the following error:
EXCEPTION: System.DmlException: Delete failed.
First exception on row 1 with id 0D5G000000h9c6ZKAQ; first error:
DUPLICATE_VALUE, duplicate value found: <unknown> duplicates value on record with id: <unknown>: 
As I understand it the DUPLICATE_VALUE error is for then you try an insert/update/upsert and you have a duplicated value in a unique field, I don't understand why is this firing on a DELETE operation.
I checked and don't have duplicate FeedItems in the list, I even tried doing:
List<FeedItem> fiList = [SELECT Id FROM FeedItem WHERE Id in ('id1', 'id2')]; delete fiList;
and I'm still getting the same error.
I have just one trigger and I alredy tried disabling it and the error still happens.
The error doesn't happen always, but I can't find any logic to why is happenning.
Any ideas of why this may be happening or how to fix it will be greatly appreciated.