use upsert to allow id from queue