Show form message only on initial load, but not after submit
Try
if (empty($form_state-&gt;getUserInput())) {
  $this-&gt;messenger()-&gt;addWarning('Some info you should know before submitting this form.');  
}

See the discussions here: Avoid repetitive API calling in form rebuild while submitting