Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Publisher: Catch creator errors #4015

Merged
merged 24 commits into from
Oct 24, 2022

Conversation

iLLiCiTiT
Copy link
Member

Brief description

Handle failed operations of creator plugins in Publihser UI to safe-guard failed state.

Description

If creator failed during one of their operations the UI could stuck without any way how to rollback and user have no idea that something went wrong. For this purposes all oprations on create context raise special exceptions. Exception hold information about each failed creator with error message and optionally traceback. This can be showed in UI as a dialog. The dialog shows a tabs per each creator which failed. Exceptions are handled on collect, update, remove and create. Create widget does not handle exceptions on it's own because it would not be possible in remotelly controllerd UI instead a controller trigger events when dialog should be shown.

Reset of controller does not trigger save automatically. That is to prevent unwanted trigger e.g. when window is reopened, the previous state should not be saved because was already saved and the context could change meanwhile.

Fixed few smaller bugs. Tab Details crashed if was selected before publishing started. Animations were not working in older Qt bindings.

Additional info

There is one remaining issue. We don't handle change of context/workfile in hosts. We should add that option in future.

The messages are really simple right now we could change them to something understandable by both users and developers. The raised error message should maybe contain information about all creators. Also the error dialog does not have title because it looked wierd above the tabs, could be added by changing the background of the title widget to same color as tabs have in empty space.

Screenshots

image
image
image

Testing notes:

  1. Crashed created, collect, update, remove should show error dialog with information
  2. Animations should work in Nuke

@ynbot
Copy link
Contributor

ynbot commented Oct 21, 2022

Task linked: OP-4183 Crashed save cause crash of UI

openpype/pipeline/create/context.py Show resolved Hide resolved
openpype/pipeline/create/context.py Show resolved Hide resolved
openpype/pipeline/create/context.py Show resolved Hide resolved
openpype/pipeline/create/context.py Show resolved Hide resolved
openpype/pipeline/create/context.py Show resolved Hide resolved
@iLLiCiTiT iLLiCiTiT self-assigned this Oct 21, 2022
@iLLiCiTiT iLLiCiTiT added type: bug Something isn't working type: enhancement Enhancements to existing functionality and removed type: bug Something isn't working labels Oct 21, 2022
Copy link
Member

@antirotor antirotor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's throwing error dialogs at me so I guess it's working!

@iLLiCiTiT iLLiCiTiT merged commit 7463a43 into develop Oct 24, 2022
@iLLiCiTiT iLLiCiTiT deleted the bugfix/OP-4183_Crashed-save-cause-crash-of-UI branch October 24, 2022 16:12
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: enhancement Enhancements to existing functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants