OpenPype icon indicating copy to clipboard operation
OpenPype copied to clipboard

Loader: Published versions menu entries errors and mismatches

Open maxpareschi opened this issue 2 years ago • 8 comments

Describe the bug Published reviews from local or farm can't be played directly in loader (both in app and standalone). This happens only if the review is published using either "local" or "On farm" (tested on Nuke) After publishing Loader displays a "Play " entry for all the representations in addition to the usual "Open in DJV" If any entry other than "Open in DJV" and "Play (exr)" is selected loader returns a list index out of range error If version is published using "Use existing frames" the play options do not appear at all. Also, the menu entries are being constructed based on last publish, so if someone publishes on farm loader gets the options, afterwards if someone publishes a new version with use existing frames the previous play entries disappear.

To Reproduce Steps to reproduce the behavior:

  1. Publish from nuke with either "local" or "On farm" and Review checked
  2. open loader (either from tray or in app)
  3. select the published asset and right click
  4. See error when selecting all play entries other than "Play (exr)"
  5. republish a new version with "Use existing frames"
  6. open loader, select asset and right click
  7. Play entries disappear, only "Open in DJV (exr)" is available

Expected behavior same behaviour for all three publish modes ("Use existing frames, "local", "On farm"). Best if we get the play entries, to see a mov i need to copy file to desktop every time or use the delivery option and navigate there.

Screenshots Version published with either "Local" or "On Farm" repre

Error when selecting any play entry aside from exr error

Play entries disappears when republishing a new version with "Use Existing Frames" Use-External-Frames

Desktop (please complete the following information):

  • OS: Windows 10
  • Host: Tested only in Nuke 12.1, 13.1 and 13.2

[cuID:OP-3853]

maxpareschi avatar Aug 30 '22 13:08 maxpareschi

@maxpareschi what is your OP version?

m-u-r-p-h-y avatar Aug 30 '22 15:08 m-u-r-p-h-y

3.14.1, fresh from today. That being said this is present from 3.8.something, which was the first version we ever used. Production now is still using 3.9.2-nightly.1 and the bug is there too.

maxpareschi avatar Aug 30 '22 15:08 maxpareschi

@maxpareschi Could you try the Open File action as set up in #3762. I assume that should actually work for all the different representations.


republish a new version with "Use existing frames" open loader, select asset and right click Play entries disappear, only "Open in DJV (exr)" is available

The PR I linked does NOT fix this part of the issue. That part of the issue is likely related to the thumbnail and other encodings not getting generated when using the "Use existing frames" option.

My first hunch is that that issue is related to logic here and potentially the line family = families_ak.lower() might need to be also set there.

However, the code in that file is throwing me off a bit because it seems to try to get a list using families_ak = avalon_knob_data.get("families", []) but does families_ak.lower() - however lists don't have a .lower() method.

my_list = ["a", "B"]
print(my_list.lower())
# AttributeError: 'list' object has no attribute 'lower' # 

So somehow that code feels a bit odd to me and I might be totally wrong (I don't use Nuke and thus don't touch that part of the OP code base usually.)

BigRoy avatar Aug 30 '22 18:08 BigRoy

Was not fully resolved

iLLiCiTiT avatar Aug 30 '22 20:08 iLLiCiTiT

Confirmed that it's only partially resolved. After @BigRoy pr yesterday the menu entries work as intended. Instead the entries gets removed if the publish was made with "Use Existing Frames", while they reappear afterwards if i publish either "on farm" or "local"

maxpareschi avatar Aug 31 '22 16:08 maxpareschi

My first hunch is that that issue is related to logic here and potentially the line family = families_ak.lower() might need to be also set there.

~Any chance you could try publishing with that implemented? Not sure if that's the right fix. :)~

Looking at this again I don't think the issue is there actually. Hmm..

BigRoy avatar Aug 31 '22 17:08 BigRoy

I tried dumping the collected instances and the only difference that i can see here is this:

Use existing frames:
    ...
    "families": [
        "review",
        "write"
    ],
    ...
Local:
    ...
    "families": [
        "review",
        "render.local"
    ],
    ...
On Farm
    ...
    "families": [
        "review",
        "render.farm"
    ],
    ...

Seems this is not the place... Could it be integrate? @BigRoy you just refactored it maybe you remember something.

maxpareschi avatar Aug 31 '22 17:08 maxpareschi

@maxpareschi I don't think is the Integrator, no - it might be but I don't think so.

The families you listed does show a potential root to the problem. When using existing frames the render family does not get added and because of that a plug-in like ExtractThumbnail wouldn't run. Which would explain why e.g. a thumbnail is not published along.

I assume the same is true for the Publish plug-ins that produce the H264 movs and dnxhd representations.

Likely the ExtractReview logic doesn't think it should do anything because it's maybe not matching render e.g. here (in that case ExtractReview plug-in in the publish UI should show that log).

Could you confirm that e.g. Extract Thumbnail does not show in the publishing UI when using existing frames? And could you check those other logs I mentioned?

I think the root of the issue will be there.

BigRoy avatar Aug 31 '22 20:08 BigRoy

@maxpareschi I believe you mentioned this issue again today saying that you are still facing it. Looking back at my last message above could you maybe further identify the issue on your end?

BigRoy avatar Mar 11 '23 06:03 BigRoy