Have you ever written a trigger and tested it to the point where it’s working perfectly, only to discover that your trigger isn’t firing? Frustrating, isn’t it? I mean, triggers always fire when the object is inserted, updated, deleted, or undeleted! Don’t they?
It turns out there are several circumstances when even the best-written trigger just doesn’t fire. According to Salesforce, triggers don’t fire for all DML operations: they fire only when a DML operation is processed by the Salesforce Java application server. The following operations are not processed by the Java application server, and therefore, triggers don’t fire when these operations occur:
In addition, some triggers fire only if you’ve configured them to do so. For example, “before” triggers don’t fire during Lead conversion unless you’ve enabled that in your org.
For a full list of when triggers don’t fire, see http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_ignoring_operations.htm.