Have you found a workaround yet? i have the exact same problem.
edit: the solution that worked for me is to go back to your original code except mark the canvas object as UPROPERTY(Transient) which will stop it interfering with the save process.
the bad news is the map you saved it on as a subobject is now broken and you’ll have to start again. You could possibly recover the map but that’s beyond me.