Answer
This is usually caused by the Custom Event itself firing more times than intended for what should be a single logical occurrence, rather than anything wrong with the print-job/batch-queue mechanism itself. Scope the event's trigger condition specifically to the exact field transition that represents the real one-time occurrence you care about — for example, firing only when a specific 'arrival' flag changes from OLD:false to NEW:true, rather than a broader condition that can incidentally match multiple times for related updates to the same record. Narrowing the trigger condition this way stops the event from re-firing redundantly, which eliminates the duplicate print-job-registration attempts and the resulting error entirely.