Narrowly, this ticket requests that in a case where an API-driven request for a plot refers to one or more non-existent table columns, a more informative message is presented to the user through the UI. The current message is of the form “Failed to fetch trace 0", which provides virtually no guidance to a user on how to correct the error.
Something like "Cannot display requested data: can't find column(s) 'x', 'y' in table 'z'." would be helpful. Only if there are multiple traces should traces be mentioned, e.g., "Cannot display requested data for trace 1: can't find column(s) 'x', 'y' in table 'z'."
https://jira.ipac.caltech.edu/browse/FIREFLY-114 has been created to address this above issue specifically.
The general issue described below will not be address in this ticket.
More generally (a) we need to think through all the failures that may occur and how to route useful messages through the various layers, and (b) whether the same / a similar message should be returned to the Python client as well. I fear that may be (very?) hard because of the asynchronous messaging that (I think) is used in the API.
See https://lsstc.slack.com/archives/C8EEUGDSA/p1546973044297700 and ff. for an instance where this arose and people had to spend time guessing at what the problem was.