Update Emby to 1.2.9 fails on truenae scale

Trying to update emby to latest versions fails. Log below:

Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 509, in run
await self.future
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 556, in __run_body
rv = await self.middleware.run_in_thread(self.method, *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1367, in run_in_thread
return await self.run_in_executor(io_thread_pool_executor, method, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1364, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 183, in nf
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 55, in nf
res = f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/upgrade.py”, line 58, in upgrade
versions_config = self.middleware.call_sync(‘app.get_versions’, app, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1654, in call_sync
return self.run_coroutine(methodobj(*prepared_call.args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1694, in run_coroutine
return fut.result()
^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/_base.py”, line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/_base.py”, line 401, in __get_result
raise self._exception
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/upgrade.py”, line 177, in get_versions
app_details = await self.middleware.call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1629, in call
return await self._call(
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1471, in _call
return await self.run_in_executor(prepared_call.executor, methodobj, *prepared_call.args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1364, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 183, in nf
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 55, in nf
res = f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/catalog/app_version.py”, line 72, in get_app_details
app_details = get_app_details(app_location, train_data[options[‘train’]][app_name], questions_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/catalog/apps_util.py”, line 106, in get_app_details
‘values’: get_app_default_values(version_data),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/catalog/apps_util.py”, line 22, in get_app_default_values
return construct_schema(version_details, {}, False)[‘new_values’]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/schema_utils.py”, line 49, in construct_schema
verrors.add_child(‘values’, validate_schema(
^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/validators.py”, line 339, in validate_schema
schema.clean(data)
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 107, in clean
data.update(self.get_defaults(data, self.get_attrs_to_skip(data), verrors))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 71, in get_attrs_to_skip
check_data = self.get_defaults(data, {}, ValidationErrors(), False) if not self.update else data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 119, in get_defaults
data[attr.name] = self._clean_attr(attr, NOT_PROVIDED, verrors)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 124, in _clean_attr
return attr.clean(value)
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 107, in clean
data.update(self.get_defaults(data, self.get_attrs_to_skip(data), verrors))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 71, in get_attrs_to_skip
check_data = self.get_defaults(data, {}, ValidationErrors(), False) if not self.update else data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 119, in get_defaults
data[attr.name] = self._clean_attr(attr, NOT_PROVIDED, verrors)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 124, in _clean_attr
return attr.clean(value)
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 107, in clean
data.update(self.get_defaults(data, self.get_attrs_to_skip(data), verrors))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 72, in get_attrs_to_skip
for attr, attr_data in filter(
File “/usr/lib/python3/dist-packages/middlewared/schema/dict_schema.py”, line 73, in
lambda k: not filter_list([check_data], k[1][‘filters’]), self.conditional_defaults.items()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/utils/init.py”, line 572, in filter_list
self.validate_filters(filters, value_maps=maps)
File “/usr/lib/python3/dist-packages/middlewared/utils/init.py”, line 283, in validate_filters
raise ValueError(‘Invalid operation: {}’.format(f[1]))
ValueError: Invalid operation: ==

The TrueNAS variant of TrueCharts was deprecated without much warning half a year ago.
You’re not going to be able to update any app from that catalogue.

They eventually posted migration guides, check their site.

Its from the stable repositiory that is included with TrueNas scale and it has been receiving regular updates without issue.

I presumed that train is called truecharts. Maybe its something else, so I edited the title.

This is definitely a bug from the TrueNas Repo maintainer.

In that case you should probably post a bug report.
You can do so directly from the TrueNAS UI.

Here’s a thread where other people report a similar error:

But if no one reports it to the devs it is less likely to get fixed.

Try refreshing the apps catalog. Then try again.
Apps → Discover Apps → Refresh Catalog

2 Likes

Thanks, but, unfortunately this does not fix the issue.

Good point and I will do just that. Luckily the app is working so its not critical at this point.

Just saw that there is an open report posted 20 some minutes ago already.

Try again now. After the Refresh suggested by @alleykat , it’s now showing 1.2.10 as the latest version.

Cheers.

1 Like

You are correct. It has been fixed now and update is running. Thanks.