The for loop contains your DML expression. As a result, it keeps attempting to insert the list into the loop. This bitlife online will function properly for a single transaction, but it will fail as soon as you attempt to use it for many transactions.