Ok. Bang head on wall moment here ...
My layout has a tab control, with three portals. Each portal on a different tab. Each portal includes related records from a different table. Two of the portals function perfectly, but the third deletes the parent record whenever I try to delete a portal row.
I am using a button with an icon running a single script step, delete portal row. I have verified the icon is actually on the portal row, and not outside the portal bounds. In fact, I've bypassed the button altogether by going up to Records -> Delete Record. The dialog specifically asked "Delete this one related record."
I've checked the relationship to make sure I don't have delete contents checked for the parent table. I do not.
The portal properties does have the allow deletion of portal records checked.
There are no script triggers in place for this portal. In fact, I deleted my original portal that did have script triggers and created the portal from scratch just to make sure.
There is an On Record Load script trigger in place, but it does not delete or otherwise manipulate table data. And yes, I did remove that just to make sure it wasn't the issue.
Now the really strange part ... when a portal row has been deleted, the original parent record "appears" to still be showing on the layout. All the original information on the parent still shows. But if I go to add data to any of the portals, or edit any of the parent fields, nothing happens. When I switch to another record, the original parent is gone. I suspect it has been deleted prior to changing to another record, but it's data still shows on the layout until that happens.
As I mentioned, I have two other portals on different tabs. They work just fine. I can delete portal rows without an issue on both of them. Both using the button and from the menu bar. As far as I can "see" all three portals are set up identically (except for the table reference). All three table relationships are identical.
But, obviously something is different. I'm just not seeing it.