Trexjacket ExternalError sometimes when setting a string parameter

What I’m trying to do:

I’m trying to set a parameter value in Tableau for a string parameter that accepts all values, and that sometimes, just sometimes, hit the following error:

ExternalError: Error: internal-error: Missing output parameter: parameterControl

This error I would expect if there are a list of allowable values (such as in a a previous post), but now when everything is allowed.

I can often just reload when developing, but that’s not great for the actual user’s sessions.

So any ideas why this might happen, and why does it seem transient?

What I’ve tried and what’s not working:

I was trying to catch that error, but it’s unclear what where’s that ExternalError is from (I cannot find it in the trexjacket code for example). I can try to catch all the possible errors, and match the message, or such, but would love to be more specific, by catching this external error.

Code Sample:

# Get the value I want to use as a parameter
self.historical_run_id = 'xyz123'
# update value in the dashboard
self.dashboard = get_dashboard()
self.dp_historical_run_id = self.dashboard.get_parameter("Historical Run Id")
self.dp_historical_run_id.change_value(self.historical_run_id)

The parameter accepts everything, though, as per Tableau:

I can’t help with the Tableau part, but an ExternalError was generated in Javascript code, typically in a Javascript library. So you won’t find it anywhere in your Python code or libraries. The browser console can give you more information on where the error came from. If you’re running in the IDE, run in a new tab so the browser console doesn’t have as much to wade through.

Hi @gergely.imreh,

@jshaffstall is right - an ExternalError is Anvil’s way of representing a error that comes from JS rather than Python. In this case, it seems likely that the JS error originates in the Tableau Extensions JS SDK, so if you can grab the relevant JS traceback from your browser console that would probably be helpful!

It was a transient one, maybe some subtle of race condition during loading stuff. I couldn’t really replicate it since.

I know how to trigger an exception very similar to this / the same on purpose, so might give that one a try and see if I can even catch it in Python in any form, to handle it.

Cheers for the extra context!