Oh boy! Spicy topic. We’ve all been there. Apps crash, work is lost, everyone goes home frustrated. This could happen with any application, not just TouchDesigner, and I remember a good expression I heard many years ago that we work in “unstable media.” TouchDesigner does have some nice mechanisms that can help us with this though, but before you can really use them, you need to understand some of the common crash states and what they look like. Let’s dive in!
Set the record straight
First and foremost. Nothing is bullet and even recovery methods fail. So these should feel more like emergency situations that happen once in a blue moon. If you’re finding that you’re asking yourself “how do I recover all my work?” often, then unfortunately problem is that you need to build a better habit of saving. I can’t remember the last time I lost any work to crashes because it’s in my muscle memory to save after every good change I make in a project. The great part about TouchDesigner is by default it makes a new save file every time you save and each one is timestamped and has an incrementing number. So even if you think you might not like the changes, it’s still better to save, because you can quickly just jump back a bunch of saves. Save often, save when in doubt, save if you kind of like it, just save a lot. There’s almost no harm in saving every few minutes (like I do!).
Hard crashes vs Soft crashes
Now specifically with TouchDesigner, you’ll generally encounter two types of crashes. This isn’t official terminology by any term, but I have heard these same terms used by many folks. The first is a “hard crash” or an “instant crash.” You’ll have experienced this if you ever done something and TouchDesigner immediately closes and disappears. No spinning wheels or loading or anything. Just instant closing. A “soft crash” or a “hang” or “pin wheeling” or whatever you want to call it, is when everything stops moving but TouchDesigner doesn’t immediately close. Usually what will happen is your mouse will take on a loading state, depending on which OS you’re using, and then if you try to click on the screen it goes kind of gray. You might even see TouchDesigner as reporting as “Not responding” in task manager. This doesn’t always mean it’s 100% crashed, often times you might be able to wait it out because TouchDesigner might trying to be computing something very expensive. But I wouldn’t spend most of your life waiting for those! Now that you know the two types of crashes you’ll likely experience, here’s some solutions.
Whenever a project crashes, it will usually make a .dmp file. This file isn’t really useful for us but it’s helpful for Derivative because they can take it apart and figure out why things crashed. Whenever you experience a repeatable crash, post your .dmp file to the TouchDesigner forum in hopes that the bug or issue can be fixed to reduce future crashes. Unfortunately this doesn’t do anything to help you recover your work. It also doesn’t ALWAYS happen. Sometimes a hard crash won’t make .dmp and sometimes a soft crash won’t make a .dmp. When you do get one, it’ll automatically pop up automatically in your project directory. If you haven’t saved the project yet, look for the .dmp file on your desktop. So those could help but what about actually recovering your work?!
Many times, when you get a crashed state, if you look in the project folder you’ll see a new .toe file that has CrashAutoSave in the name. This isn’t a special file, but it is a special process. When you run this file, it will open TouchDesigner but with the whole rendering and processing engines turned off. That means even if you saved your file in a broken state and even just opening it crashes, you can open the CrashAutoSave project and look around the network, maybe delete new operators you recently added or bypass them so they don’t try to do things when you start the project. Then what you can do is save the CrashAutoSave project and it will automatically create a new numbered save of your original project (as if you had hit save in your original project), so that you can close TouchDesigner and try to open the new save that you just made of your regular project (with all the rendering and processing turned on). This can be a fantastic way to recover your work because even better than auto-saves that other apps have, this will be the state of the project right from the moment of the crash.
Secret crash state
This is the real magic. The mother of all secret TouchDesigner pro voodoo dark magick secrets. You can make any project file open up in the CrashAutoSave state. You don’t need to wait for TouchDesigner to crash and make one for you. Even if you have a perfectly good project file but for some reason it’s getting locked up, or you can’t access the UI, or for any reason you want to start a project without anything rendering or processing, you can make a copy of your project file and rename it to CrashAutoSave.toe. Then running it will engage in the same process as any other CrashAutoSave project. This can be especially useful in so many cases. I’ve used it to get into projects where I’m locked out of the UI, or when I receive files from sources I don’t particularly trust and want to just look around in the file first before I start running random Python scripts and such on my system. This is something you’ll always want to remember and keep in your back pocket as it can be invaluable in that clutch moment.
Whether you’re experiencing hard crashes or soft crashes, knowing what happens at different stages of crashing can be a useful tool in your workflow. Knowing how to use .dmp files, CrashAutoSave files, and even how to make your own CrashAutoSaves are critical parts of any pros workflow in TouchDesigner. Don’t forget that there is still nothing better than making a good practice of saving regularly (and constantly!) and being proactive about making lots of checkpoints. Enjoy!