Real Javascript export_preset not working

Describe the bug
I have the following action:

async function someJavaScriptFunction() {
	BTTLog("before");
	await export_preset({name:'Default', compress: 1, includeSettings: 0, outputPath: '~/Downloads', comment: 'this is a great preset', link: 'https://someoptionallink', minimumVersion: '5.0'});
	BTTLog("after");
	return false;
}

When I run it, the preset is not exported and I can see that there is no returned value in the Script Result box. Nothing else happens. I also tried wrapping the export_preset call in a try/catch but the code in the catch doesn't run either.

Looking in the logs, I see:

2025/02/22 21:33:22:852|LIC|ADD REGISTER MENU ITEM|
2025/02/22 21:33:23:003|HYPER|Hyper NO Key Used|
2025/02/22 21:33:24:071|ASL|no changes to save|
2025/02/22 21:33:24:071|ASL|save changes|
2025/02/22 21:33:24:074|JS|JS Log: before|
2025/02/22 21:33:26:749|SHORTCUT|SHORTCUT FETCH DISABLE 1|
2025/02/22 21:33:26:790|SHORTCUT|SHORTCUT FETCH DISABLE 1|
2025/02/22 21:33:26:938|HYPER|Hyper NO Key Used|

Device information:

  • Type of Mac: MacBook M3 Pro 14-inch, 2023
  • macOS version: 15.3
  • BetterTouchTool version: 5.214

I'm not really sure why, but when I tried this code this morning, it worked:

export_preset({name:'Default', compress: 0, includeSettings: 1, outputPath: '~/repos/config/Default.bttpreset'});
returnToBTT();

Perhaps the issue was that I need to provide a path to a file for the preset, not a path to a directory? In that case, the export_preset example should be updated to reflect that.

I'll have a look, thanks for reporting!