This only works if you’re using a scripting action in your automation, but my workaround for this has been to maintain two extra fields in each table that triggers an automation. One field is a Last Modified time, limited to tracking the fields which store data relevant to the automation. The other field is a Date/Time field with the name Last Processed where I manually store the time when the script last completed successfully. At the end of my script, I make an update to this field with the current time. Since this code won’t be executed if the automation fails earlier on, the data never gets updated in case of an error.
Using these two fields, I can tell which records have failed to update by comparing the Last Modified time to the Last Processed time. I then manually trigger the automation again. How you would do this depends on your specific trigger, but in my case I have a “Force Update” checkbox field which I incorporate into the Trigger logic, and toggling it causes the automation to run again.
All that being said, this process is a huge pain, and it would be WAY better if there was a button to just re-run the failed automations directly from the Runs log.