Fixes error message display when raising errors from a generator function#2889
Merged
Merged
Conversation
c8d43d9 to
3d62b02
Compare
Member
|
Thanks for this contribution @JaySmithWpg, including the test! Testing it out now |
Member
|
LGTM, thanks @JaySmithWpg for fixing this issue in the library 🧡 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
When an error is raised in a function that returns iterative output to Gradio, the error is not correctly displayed in the user interface. The message is never delivered to the browser.
This function correctly displays the modal error message in the browser:
But if the function is a generator that yields any results before the error is raised, the error message never appears in the browser:
Console output, thankfully, is not impacted by this bug.
This happens because Queue.process_events does not check the status of the last message received. It gets the status of the second last message received.
This PR changes Queue's behaviour to check the final message status and use that status to determine which message should be used to communicate the end of the generator to the browser.
Checklist: