The "saved" toast is misleading you , SubmitForm fires OnSuccess when the item commits, which has nothing to do with whether the attachment rode along.
So the record is saving fine; the attachment is being dropped somewhere between the control and the list. Two things to check, in order.
1. Confirm it's actually missing (rule out a false alarm first). SharePoint list attachments don't show up as a column in the default list view, they're attached to the item and only surface as a paperclip icon that most views hide. Open the actual list item (or add the "Attachments" field to your view) rather than scanning the list grid. A surprising number of these turn out to be saving all along and just invisible in the view.
2. If it's genuinely not there, it's almost always the DataCard binding. When you add the Attachments field to a form, Power Apps generates the card but the Update property doesn't always wire up correctly , and SubmitForm silently commits the record without the file when it's blank or wrong. Unlock the Attachments card and confirm all three:
Card Update: DataCardValueX.Attachments . note it's the .Attachments property of the control, not just DataCardValueX. This is the one that's usually broken.
Card Default: ThisItem.Attachments
The attachments control's Items: Parent.Default
Also verify the control sits inside a DataCard within the form, not floating on the screen , the attachment control only uploads/deletes from within a form and SubmitForm only submits what's bound through the form's cards. Per Microsoft's own docs, the control is disabled and non-functional outside a form (learn.microsoft.com → Power Apps → Attachments control).
Two more worth a glance if the above checks out: make sure attachments are enabled at the list level (List settings → Advanced settings → Attachments: Enabled , this is separate from unhiding the column), and note that some file extensions are blocked by SharePoint's blocked-file-types list at the tenant/site level, which fails silently in exactly this way. If a .jpg saves but a .docx or other type doesn't, that's your culprit.
My money's on the Update property missing the .Attachments suffix . that's the single most common cause of this exact symptom.