theHold.Begin() not working with SME

I'm trying to grab any of the functions within a button like so:

on btn_purgeSme pressed do
(
	if not theHold.Holding() then theHold.Begin()
 
	if querybox "Removes / Purges (in all SME views):\n\n\t- Materials\n\t- All Map types\n\t- Controllers\n\nwhich are not in the scene and deletes any remaining empty views afterwards.\n\nDo you want to continue ?" title:"WARNING !" beep:true then
	(
 
		purgeSMEMaterials_fn()
		getSmeIndexesEmpty_fn()
		deleteSmeTabs_fn()
 
		theHold.Accept "Undo works!"
		)
	else
	(
		Print "Purge cancelled"
		)
 
	theHold.End()
 
	)

This fails to capture any of the functions within the query true part. Do I have to revert to using a holdMaxFile for any SME operations?