A Contract record cannot be activated or unlocked and results in an error:
VEEVA_CONTRACT_AFTER_UPDATE: execution of AfterUpdate
One or more Contract Line records have a Product where the product type is not Detail, Order, or Product Group. Only these product types can be used on a Contract Line.
Change the Contract Lines to include only Detail, Order or Product Group type products. Use the following to check the results:
Select id from Contract_Line_vod__c WHERE Contract_vod__c = '<contractid>' AND Product_vod__c in (select id from Product_vod__c where Product_Type_vod__c not in ('Detail','Order','Product Group'))
CRM Help Documentation: Contracts