Pipeline Tools UI hangs within SG environment on some artist machines

Hi. I’m at a complete dead-end in trying to isolate the cause of the PipelineTools UI hanging on some machines and not others. Here’s a quick rundown of the issue:


  • launch Nuke via SGTK UI.
  • Open PipelineTools UI, submit to Deadline. No issues.


  • Same steps as above, however two people can no longer open the PipelineTools UI.
  • Opening the UI hangs Nuke, and the UI never fully populates; we just see a window filled with black.

Important note; no SG related code was changed. No software on the machines was changed. No infrastructure was changed.

The only thing we can theorise; both machines were rebooted.

Outside of the SGTK launch environment, it works fine.

Here’s what I’ve tried to fix or at least isolate the issue further (we use Linux);

  • Delete Deadline settings within ~/Thinkbox/Deadline10/settings
  • Delete Shotgun settings within ~/.shotgun
  • Run a clean Nuke environment, with only enough loaded to configure the SG environment and the Deadline submitter.

I can only assume this is machine specific, which suggests settings of some form. Yet I’ve purged the settings I’m aware of that could influence the issue, and it persists.

I’m also unable to determine where the crash is occuring; I’ve added log statements to the IntegrationUI (as that manages the UI that is never appearing correctly), and these statements never appear.

What. On. Earth. Could. It. Be?

I’m also posting this on the Shotgrid forums, just in case there’s some wisdom hiding there.

Any guidance would be appreciated as outside of reinstalling everything (which seems extreme), I cannot solve this.


Last night, all machines rebooted - and now, as feared, they all exhibit the issue.

So I’ve spent today digging some more and have managed to print the error that was stalling Nuke;

Error: ArgumentException : Path '/opt/Shotgun/Shotgun' is rooted; it must be a relative path.
   at FranticX.IO.Path2.ValidateSubPath(String subPath)
   at Deadline.StorageDB.FileStorage.GetRepositoryPath(String subDirectory, Boolean checkCustom)
   at Deadline.StorageDB.PluginStorage.GetPluginDirectory(String pluginFolder, String pluginName, Boolean checkCustom, String directoryOverride)
   at Deadline.StorageDB.PluginStorage.c(String mk, String ml, String mm, Boolean mn, String mo)
   at Deadline.StorageDB.PluginStorage.GetParamsFile(String pluginFolder, String pluginName, Boolean checkCustom, String altCustomPluginDirectory)
   at Deadline.Scripting.RepositoryUtils.GetEventPluginConfig(String eventPluginName)
  File "/mnt/cgfx/DeadlineRepository10/custom/submission/Integration/Main/IntegrationUIStandAlone.py", line 94, in __main__
    integration_dialog.AddIntegrationTabs( main_dialog, appName, addDraftTab, projectManagements )
  File "/mnt/cgfx/DeadlineRepository10/custom/submission/Integration/Main/IntegrationUI.py", line 42, in AddIntegrationTabs
    config = RepositoryUtils.GetEventPluginConfig( project )
   at Python.Runtime.PyObject.Invoke(PyObject[] args)
   at Python.Runtime.PyObject.InvokeMethod(String name, PyObject[] args)
   at FranticX.Scripting.PythonNetScriptEngine.CallFunction(String moduleName, String functionName, Object[] args)

I see now what the issue is - the integration tool wants ‘Shotgun’ passed to it (which makes sense), and it’s getting the path to the Shotgun Desktop executable instead. Interesting that a reboot caused this problem.

I’ve patched it so it returns ‘Shotgun’ when it requires it and will look into a non-patched solution at a later stage. Although the further I dig, the more I see that the incorrect value is coming from the python2.7 argparser included with Nuke - we are using 11.3v2 - so a reboot being the trigger is making more and more sense, as argparser is possibly discovering the executable when it was supposed to simply see a string literal (I could be off the path with that assumption though).

Thanks again for your thoughts and input.

Also. I’m Australian, and to describe something as ‘rooted’ literally means it’s f#kd. So it made me laugh when the error was printed out - as in this case, our SG integration is very much f#kd!

Privacy | Site terms | Cookie preferences