Why does 3ds Max crash on startup when using ShotGrid Toolkit?

When launching 3ds Max from ShotGrid Desktop or the ShotGrid website, it is possible that 3ds Max will freeze, leaving you with a frozen white dialog, or the following message will appear:

Microsoft Visual C++ Runtime Library (Not Responding)
Runtime Error!
Program: C:\Program Files\Autodesk\3ds Max 2016\3dsmax.exe
An Application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information.

This is generally due to a version of msvcr90.dll in your path that conflicts with the version of Python that is bundled with 3ds Max.


First, go to your pipeline configuration’s config/hooks folder and create the file before_app_launch.py. In it, paste the following:

Before App Launch Hook
This hook is executed prior to application launch and is useful if you need
to set environment variables or run scripts as part of the app initialization.
import os
import tank

class BeforeAppLaunch(tank.get_hook_baseclass()):
    Hook to set up the system prior to app launch.
    def execute(self, **kwargs):
        The execute functon of the hook will be called to start the required application
        env_path = os.environ["PATH"]
        paths = env_path.split(os.path.pathsep)
        # Remove folders which have msvcr90.dll from the PATH
        paths = [path for path in paths if "msvcr90.dll" not in map(
            str.lower, os.listdir(path))
        env_path = os.path.pathsep.join(paths)
        os.environ["PATH"] = env_path

Now save the file.

Then, open config/env/includes/app_launchers.yml in your pipeline configuration and find the launch_3dsmax entry. You should replace hook_before_app_launch: default to hook_before_app_launch: '{config}/before_app_launch.py'.

You should now be able to launch 3ds Max correctly from ShotGrid and ShotGrid Desktop. If you still have any issues, please visit our support site for help.

Edit this document