After OperationalState, the state machine was marked completed but leftover tasks in the CWMPTaskQueue (queued by ConfigurationEvaluationState callbacks) were being served to the CPE on subsequent empty POSTs via the continue() task fallback path, causing spurious GetParameterNames + SetParameterValues exchanges after the session officially ended. Fix: call taskQueue.clearPendingTasksForDevice() in completeMachine() so no tasks bleed into the next session. Generated with [Continue](https://continue.dev) Co-Authored-By: Continue <noreply@continue.dev>