Nuke Hybrid farm (win/macOS)

Good afternoon.
I have an hybrid farm setup (12 pcs, 5macOS) which I want them all to be able to render the any job comped in the studio.
I have checked the “Mapped path” options in repo options without any luck. When I submit a job from Nuke to the farm, only MacOS will render MacOS jobs, and Windows will only render Windows, they give error when trying to render a differnt OS.
Is anyone aware how to setup this? Is not all about where the script is located in the server, is also about all the Read and write nodes inside the script, so I am really lost in this subject.
Anyone has setup this with good results? Thanks

PS:
My Mapped paths settings:

Replace Path: \Volumes\PROJECTS
Windows path: F:/

Replace Path: F:/
Mac Path path: \Volumes\PROJECTS

Nvermind, the path thing seems to work, i have an error when trying to access to the script:

=======================================================
Error

Error: Error: Access to the path ‘/Volumes/XXX/XXX/XXX/XXX/XXX/XXX/XX/XX/XXX/nuke/EXAMPLE_FILE.nk’ is denied. (System.UnauthorizedAccessException)
at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func2 errorRewriter)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
at System.IO.Strategies.OSFileStreamStrategy…ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream fileStream, String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)
at System.IO.File.OpenRead(String path)
at Deadline.IO.PathMappingUtils.c(String bxo, String bxp, String bxq, String[] bxr, String[] bxs, IList1 bxt, Boolean bxu, DataController bxv, GenericDelegate11 bxw, String bxx, OS bxy)
at Deadline.IO.PathMappingUtils.CheckPathMappingInFileAndReplace(String inFileName, String outFileName, String forceSeperator, String[] stringsToReplace, String[] newStrings, DataController dataController, GenericDelegate11 logFunction, String regionID, Boolean readFileAsBytes) at Deadline.IO.PathMappingUtils.CheckPathMappingInFileAndReplace(String inFileName, String outFileName, String forceSeperator, String[] stringsToReplace, String[] newStrings, DataController dataController, GenericDelegate11 logFunction, String regionID)
at Deadline.IO.PathMappingUtils.CheckPathMappingInFileAndReplace(String inFileName, String outFileName, String[] stringsToReplace, String[] newStrings, DataController dataController, GenericDelegate1`1 logFunction, String regionID)
at Deadline.Scripting.RepositoryUtils.CheckPathMappingInFileAndReplace(String inFileName, String outFileName, String[] stringsToReplace, String[] newStrings)
— End of stack trace from previous location —
at Python.Runtime.PythonException.ThrowLastAsClrException() in C:\thinkbox-conda\conda-bld\dotnet_pythonnet_1688438502375\work\src\runtime\PythonException.cs:line 51
at Python.Runtime.Dispatcher.TrueDispatch(Object[] args) in C:\thinkbox-conda\conda-bld\dotnet_pythonnet_1688438502375\work\src\runtime\DelegateManager.cs:line 341
at Python.Runtime.Dispatcher.Dispatch(Object[] args) in C:\thinkbox-conda\conda-bld\dotnet_pythonnet_1688438502375\work\src\runtime\DelegateManager.cs:line 208
at __FranticX_GenericDelegate0Dispatcher.Invoke()
at FranticX.Processes.ManagedProcess.PreRenderTasks()
at FranticX.Processes.ManagedProcess.Execute(Boolean waitForExit)
---------- Inner Stack Trace (System.IO.IOException) ----------

at Deadline.Plugins.PluginWrapper.StartJob(String& outMessage, AbortLevel& abortLevel)

=======================================================
Type

RenderPluginException

=======================================================
Stack Trace

at Deadline.Plugins.SandboxedPlugin.d(DeadlineMessage bgt, CancellationToken bgu)
at Deadline.Plugins.SandboxedPlugin.StartJob(Job job, CancellationToken cancellationToken)
at Deadline.Slaves.SlaveRenderThread.c(TaskLogWriter ajy, CancellationToken ajz)

Looking at the error you have posted, it looks like the path mapping didn’t go through for Windows nodes and it failed to find a /Volumes path a Windows machine.

I believe that the “EXAMPLE_FILE.nk” was not submitted from the “\Volumes\PROJECTS” and hasn’t got replaced. The path mapping feature of Deadline is like “Find and Replace” option in a text editor, it looks for the string specified in “Replace Path” and replace it with the path specifiied under the OS entry.

For example (using your Mapped Path entry):

  • Replace Path: \Volumes\PROJECTS
    Windows path: F:/

With the above entry, if any path passed throught CheckPathMapping() code with ‘\Volumes\PROJECTS’ path on Windows node it will be replaced to ‘F:/’. For testing purpose, try running the below command:

"%Deadline_Path%\deadlinecommand.exe" -CheckPathMapping "\Volumes\PROJECTS\This\is\new\project\for\nuke.nk"

This will be replaced to as an output:

F:\\This\is\new\project\for\nuke.nk