@Jorge Rosales After a little digging and research, we don't think it's an FME issue. Modifying the trigger SQL slightly makes the trigger behave. In SQLite, when inserting or updating data with a trigger, it seems you have to specify whether you are referencing the original record (OLD) or the update record(NEW). Adding this reference to the trigger SQL let's it run:
DROP TRIGGER "main"."parcel_insert";
CREATE TRIGGER parcel_insert
AFTER INSERT ON parcel
WHEN (NEW.code IS NULL)
BEGIN
SELECT RAISE(ABORT, 'Invalid parcel code');
END
Note the addition of NEW to line 4:
WHEN (NEW.code IS NULL)
You should now only get an error if the replacement value for code (NEW.code) = <null>
I've attached a revised version of the workspace (FME 2021.2).
More details on SQLite triggers and the OLD | NEW references here