Here is one approach... You can create a sheet with message "No records found" and float your donut chart on top of that. When the data set in your donut chart is empty you will see the sheet with "No records found" message.
Here is a quick tutorial Tableau Tutorial - No Data Available - YouTube
Hope that helps!
This might be complicated without a .twbx to show you... (i.e. please upload one)
My initial thoughts are you could try replacing a field with a 'watching agent' calculated field which just passes through any values unless none are present;
if attr([Case Status]) == attr([Case Status]) then attr([Case Status])
else 'no records'
Then, use this in a sheet-swap filter, one viz for all of your fields when they are there, and one viz for the 'no records' option.