we use Deadline & Cinema4D+RS for rendering. Everytime when a machine in our network starts a new task, the windowsexplorer.exe crashes. This means when there is only 1 frame per task, it crashes every minute (depends on the scene) and so working along the way is not possible when the machine is rendering, because every window or program closes with each new task.
At least we found out, that this problem stays in touch with the Font Sync from Deadline. Due to every task-start we had the slave syncing the fonts, just to be sure that every slave has all fonts.
When we are changing the font sync to just one time when the slave starts, then the windowsexplorer.exe crash has gone. Is there a minor update to change this issue ?
I can remember a late Deadline 9.X version, where this problem wasn´t there.
we still have the issue, even with new windows versions and with the current deadline version.
We did a work around and activated the fontsync only on start of the slave. So if you insert a new font into your sync folder, you need to restard all slaves. However, this is done pretty quick, so we didn’t invest a lot of time to look for a fix.
I am seeing this problem. I was doing C4D 2023 on my workstation via deadline 10.2.0.10 and noticed explore reloads for every render task. I guess our farm has been having the problem all along but it was much more annoying this time since I was trying to work while rendering on my workstation.
This is on both windows 10 22H2 and Windows 11 22H2. If fontsync is disabled, the problem goes away. I ended up doing what kontakt suggested and having it run on worker startup to minimize the issue. But it would be nice to have this issue fixed properly if possible.
Thanks for the update on this, I have updated our internal ticket to engineering team with the recent data and that you are able to still reproduce it on latest Windows version.
I cannot tell an ETA on the fix though.
I did some digging into this today and frankly, I’m not quite sure what we can do about this. The code we have inside Deadline that’s leading to this crash is extremely simple. Here’s the whole of it:
public static bool RegisterFonts( string fontFileNames, int millisecondTimeout )
int registeredCount = 0;
foreach( string fontFileName in fontFileNames )
registeredCount += Gdi32.AddFontResource( fontFileName );
// Send a notification that fonts have changed (if any were actually installed).
if( registeredCount > 0 )
uint delay = (uint) millisecondTimeout;
int result = User32.SendMessageTimeout( User32.GetHwndBroadcastAsIntPtr(), User32.WM_FONTCHANGE, IntPtr.Zero, 0, 0, delay );
if( result == 0 )
throw new Exception( "Registering fonts timed out. Try increasing the timeout value." );
I’m not sure if the broadcast message here is what’s killing Explorer or not. I found this example that doesn’t broadcast a message. Can you see if this works if you save it then run it either through a python installed on the system or via “C:\Program Files\Thinkbox\Deadline10\bin\dpython.exe”
# Load the AddFontResourceA function from the gdi32 library
addfont = ctypes.windll.gdi32.AddFontResourceA
# Call the AddFontResourceA function with the font path as the argument
result = addfont(font_path)
# Return True if the font was installed successfully, False otherwise
return result != 0
# Example usage
font_path = r"C:\Windows\Fonts\myfont.ttf"
result = install_font(font_path)
print("Font installed successfully")
print("Font installation failed")
We’re passing SMTO_NORMAL (0x0000) when we ask all running applications to reload their font cache so I don’t think Explorer is dying because of that.
Thanks for looking into this. The code sample you gave does not crash explorer… but I also could not get it to install a font. So I am not sure it was a fair test.
It returned false running as is.
If I tried to set a path to a font to test like C:\ftest\myfont.ttf, it also returned false.
Trying the font path shown in your code (C:Windows\Fonts\myfont.ttf) also returned false. But in that case, I had to put a font there for it to register, but by doing that, it already invoked installing it because I did it with the gui. So it might of failed because that font was already installed.
I think newer versions of windows (10 and 11) would not let you simply copy to that C:Windows\Fonts\folder via a script. I think deadline was copying to a temp folder and registering them temporarily for that login session.