Skip to content

Bug: ROPs contained in digital assets need to be unlocked, so that sopoutput/Output File is writeable by the adaptor. #254

@andymanaws

Description

@andymanaws

Describe the bug

Its common to wrap exporting into a digital asset at companies - Houdini offer it themselves via the filecache node which people again use a lot.

However, when using a locked digital asset, the sopoutput ( Output File) parameter cannot be written to - which I believe is a key requirement - of the SMF process ( or filepath mapping on SMF?)

If the ROP is inside a locked digital asset you get this error:

2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: 
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDOUT: Performing action: {"name": "start_render", "args": {"frame_range": {"end": 1, "start": 1, "step": 1}}}
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR: Traceback (most recent call last):
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:   File "/sessions/session-26680be9828444b9a7a0df2d59cd4a3aqym832da/.env/opt/deadline-cloud-for-houdini/deadline/houdini_adaptor/HoudiniClient/houdini_client.py", line 65, in <module>
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:     main()
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:   File "/sessions/session-26680be9828444b9a7a0df2d59cd4a3aqym832da/.env/opt/deadline-cloud-for-houdini/deadline/houdini_adaptor/HoudiniClient/houdini_client.py", line 61, in main
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:     client.poll()
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:   File "/sessions/session-26680be9828444b9a7a0df2d59cd4a3aqym832da/.env/opt/deadline-cloud-for-houdini/openjd/adaptor_runtime_client/base_client_interface.py", line 212, in poll
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:     self._perform_action(action)
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:   File "/sessions/session-26680be9828444b9a7a0df2d59cd4a3aqym832da/.env/opt/deadline-cloud-for-houdini/openjd/adaptor_runtime_client/base_client_interface.py", line 233, in _perform_action
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:     action_func(a.args)
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:   File "/sessions/session-26680be9828444b9a7a0df2d59cd4a3aqym832da/.env/opt/deadline-cloud-for-houdini/deadline/houdini_adaptor/HoudiniClient/houdini_handler.py", line 124, in start_render
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:     self.node.parm("trange").set(1)
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:   File "/sessions/session-26680be9828444b9a7a0df2d59cd4a3aqym832da/.env/opt/houdini/houdini/python3.10libs/houpythonportion/Parm.py", line 87, in set
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:     self._set(value)
2025/04/25 12:54:58+00:00 ADAPTOR_OUTPUT: STDERR:   File "/sessions/session-26680be9828444b9a7a0df2d59cd4a3aqym832da/.env/opt/houdini/houdini/python3.10libs/hou.py", line 69838, in _set
2025/04/25 12:54:59+00:00 ADAPTOR_OUTPUT: STDERR:     return _hou.Parm__set(self, *args)
2025/04/25 12:54:59+00:00 ADAPTOR_OUTPUT: STDERR: hou.PermissionError: Failed to modify node or parameter because of a permission error.  Possible causes include locked assets, takes, product permissions or user specified permissions
2025/04/25 12:54:59+00:00 openjd_fail: Error encountered while running adaptor: Houdini exited early and did not render successfully, please check render logs. Exit code 1
2025/04/25 12:54:59+00:00 ERROR: Entrypoint failed: STDERR:     return _hou.Parm__set(self, *args)
2025/04/25 12:54:59+00:00 STDERR: hou.PermissionError: Failed to modify node or parameter because of a permission error.  Possible causes include locked assets, takes, product permissions or user specified permissions
2025/04/25 12:54:59+00:00 openjd_fail: Error encountered while running adaptor: Houdini exited early and did not render successfully, please check render logs. Exit code 1
2025/04/25 12:54:59+00:00 Process pid 11989 exited with code: 1 (unsigned) / 0x1 (hex)
No newer logs at this moment.

If you unlock the digital asset ( e.g. right click on a filecache , and Allow Editing of Contents) then the task works.

Expected Behaviour

The relevant digital assets need to be unlocked - Deadline Cloud will need to determine if the sopoutput parameter is writeable at submission time.

If not:

  • at submission time, it could throw an error, and refuse to submit ( and let the artist figure it out)
  • at submission time, it could ask the user if they would liek to unlock the relevant digital asset, and then perform the action on their behalf.
  • at submission time, it does nothing, but at scene loading time, it could unlock the digital assets required to write. As long as the HIP is not saved during the render process ( its not right?) then its a transient action.

Current Behaviour

You get an error ( see above)

Reproduction Steps

Use a filecache node.
In OUT, drop down a fetch, point it to the filecache's ROP GEometry Output, plug it into a deadline cloud ROP, and submit.

Environment

At minimum:

  1. Operating system Windows Server 2022
  2. Version of Houdini: 20.0.724
  3. Version of this package
  4. If this is from a version installed by the Deadline Cloud Submitter installer, then what version of the submitter installer?

Please share other details about your environment that you think might be relevant to reproducing the bug.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions