Netflix plugin (0.15.1) not starting with ProfilesMissing exception
See original GitHub issueToday the Netflix plugin stopped working, I could not even get to the profiles page as I was getting a ProfilesMissing
exception:
2019-08-28 23:33:59.116 T:1453314784 ERROR: [plugin.video.netflix (1)] Traceback (most recent call last):
File "/home/pi/.kodi/addons/plugin.video.netflix/addon.py", line 109, in <module>
route(filter(None, g.PATH.split('/')))
File "/home/pi/.kodi/addons/plugin.video.netflix/addon.py", line 50, in lazy_login_wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/addon.py", line 79, in route
g.REQUEST_PARAMS)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/navigation/__init__.py", line 21, in execute
executor(pathitems=pathitems)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py", line 45, in root
self.profiles()
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py", line 51, in profiles
listings.build_profiles_listing()
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/kodi/listings.py", line 29, in set_custom_viewmode
override_partial_setting_id = func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/common/misc_utils.py", line 246, in timing_wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/kodi/listings.py", line 61, in build_profiles_listing
active_guid_profile = g.LOCAL_DB.get_active_profile_guid()
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/database/db_base_sqlite.py", line 41, in wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/database/db_local.py", line 89, in get_active_profile_guid
return self._get_active_guid_profile()
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/database/db_local.py", line 20, in _get_active_guid_profile
raise ProfilesMissing
ProfilesMissing
The cause of this error is that there is no profile in the local database. Indeed, running sqlite3 $HOME/.kodi/userdata/addon_data/plugin.video.netflix/database/nf_local.sqlite3 "SELECT COUNT(*) FROM profiles"
returns 0
, which confirms that the profiles table is empty.
The profiles table is filled here:
nfsession.py:login
nfsession.py:_login
website.py:extract_session_data
website.py:extract_profiles
g.LOCAL_DB.set_profile(guid, is_active, sort_order)
So I tried to delete both nf_local.sqlite3 and nf_shared.sqlite3, start the Netflix plugin, re-entering my username and password, hoping that the profiles table would finally be populated. But it did not work, I was getting a “AddonSignals call timed out” errors. So I rebooted my Raspberry Pi but then I started getting “Error parsing MSL Encodable”.
Finally, I deleted the whole $HOME/.kodi/userdata/addon_data/plugin.video.netflix
directory, re-entered my Netflix username and password and I was finally able to access my Netflix profile.
But the story doesn’t end here. When trying to play a video, I got the following error:
2019-08-29 00:23:16.108 T:1593823968 ERROR: [plugin.video.netflix (0)] Traceback (most recent call last):
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/services/msl/http_server.py", line 47, in do_GET
data = self.server.msl_handler.load_manifest(int(params['id'][0]))
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/services/msl/msl_handler.py", line 41, in error_catching_wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/common/misc_utils.py", line 246, in timing_wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/services/msl/msl_handler.py", line 109, in load_manifest
manifest = self._load_manifest(viewable_id, g.get_esn())
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/common/misc_utils.py", line 246, in timing_wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/services/msl/msl_handler.py", line 195, in _load_manifest
manifest_request_data, esn)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/common/misc_utils.py", line 246, in timing_wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/services/msl/msl_handler.py", line 244, in _chunked_request
self._post(endpoint, self.request_builder.msl_request(request_data, esn)))
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/common/misc_utils.py", line 246, in timing_wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/services/msl/request_builder.py", line 37, in msl_request
return (json.dumps(self._signed_header(esn)) +
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/common/misc_utils.py", line 246, in timing_wrapper
return func(*args, **kwargs)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/services/msl/request_builder.py", line 57, in _signed_header
esn)
File "/home/pi/.kodi/addons/plugin.video.netflix/resources/lib/services/msl/default_crypto.py", line 62, in encrypt
cipher = AES.new(self.encryption_key, AES.MODE_CBC, init_vector)
File "/home/pi/.local/lib/python2.7/site-packages/Cryptodome/Cipher/AES.py", line 232, in new
return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs)
File "/home/pi/.local/lib/python2.7/site-packages/Cryptodome/Cipher/__init__.py", line 79, in _create_cipher
return modes[mode](factory, **kwargs)
File "/home/pi/.local/lib/python2.7/site-packages/Cryptodome/Cipher/_mode_cbc.py", line 274, in _create_cbc_cipher
cipher_state = factory._create_base_cipher(kwargs)
File "/home/pi/.local/lib/python2.7/site-packages/Cryptodome/Cipher/AES.py", line 92, in _create_base_cipher
if len(key) not in key_size:
TypeError: object of type 'NoneType' has no len()
In despair, I deactivated then re-activated the Netflix plugin and I was finally able to watch Netflix! 🎉 (It looks like the last error is a know issue: #171)
Just documenting this here as it might help someone.
Issue Analytics
- State:
- Created 4 years ago
- Comments:14 (1 by maintainers)
Top GitHub Comments
Well @setegonz, should you see the error again, please fill a new issue with full logs 😃 Enjoy your videos!
I have the same “profile missing” problem on Raspberry 3 (Kodi 18.5) and Netfix plugin 1.1.1. I try to delete plugin and install again, doesn’t help. Spammychips recommendation also doesn’t work.
There is my log file: 2020-04-11 08:05:16.201 T:1648259968 ERROR: [plugin.video.netflix (0)] IPC callback raised exception: 2020-04-11 08:05:16.213 T:1648259968 ERROR: [plugin.video.netflix (0)] Traceback (most recent call last): File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py”, line 173, in make_return_call result = call(instance, func, data) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py”, line 197, in call return func(instance) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/directorybuilder/dir_builder.py”, line 56, in get_profiles self.req_profiles_info() File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache_utils.py”, line 80, in wrapper return g.CACHE.get(_bucket, identifier) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache.py”, line 39, in get data = self._make_call(‘get’, call_args) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache.py”, line 92, in _make_call_service return getattr(g.CACHE_MANAGEMENT, callname)(**params) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache/cache_management.py”, line 125, in get identifier = self._add_prefix(identifier) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache/cache_management.py”, line 79, in _add_prefix return self.identifier_prefix + identifier File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache/cache_management.py”, line 65, in identifier_prefix return self._identifier_prefix or self._set_identifier_prefix() File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache/cache_management.py”, line 75, in _set_identifier_prefix self.identifier_prefix = g.LOCAL_DB.get_active_profile_guid() + '’ File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/database/db_base_sqlite.py”, line 56, in wrapper return func(*args, **kwargs) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/database/db_local.py”, line 107, in get_active_profile_guid return self._get_active_guid_profile() File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/database/db_local.py”, line 27, in _get_active_guid_profile raise ProfilesMissing ProfilesMissing 2020-04-11 08:05:16.302 T:1531691904 ERROR: [plugin.video.netflix (1)] IPC call get_profiles returned ProfilesMissing: 2020-04-11 08:05:16.312 T:1531691904 ERROR: [plugin.video.netflix (1)] Traceback (most recent call last): File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py”, line 190, in run route([part for part in g.PATH.split(‘/’) if part]) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py”, line 33, in lazy_login_wrapper return func(*args, **kwargs) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py”, line 67, in route _execute(nav_handler, pathitems[1:], g.REQUEST_PARAMS) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py”, line 78, in _execute executor(pathitems=pathitems) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py”, line 58, in root self.profiles() File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory_utils.py”, line 32, in set_custom_viewmode override_partial_setting_id = func(*args, **kwargs) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py”, line 87, in profiles list_data, extra_data = common.make_call(‘get_profiles’) # pylint: disable=unused-variable File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/logging.py”, line 138, in timing_wrapper return func(*args, **kwargs) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py”, line 87, in make_call return make_addonsignals_call(callname, data) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py”, line 150, in make_addonsignals_call _raise_for_error(callname, result) File “/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py”, line 163, in _raise_for_error raise Exception(result[‘error’]) Exception: ProfilesMissing 2020-04-11 08:05:16.313 T:1540084608 ERROR: GetDirectory - Error getting plugin://plugin.video.netflix/ 2020-04-11 08:05:16.314 T:1936986688 ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.netflix/) failed 2020-04-11 08:09:44.309 T:1936986688 WARNING: CGUIWindowManager - HandleAction - ignoring action 92, because topmost modal dialog closing animation is running 2020-04-11 08:09:44.341 T:1936986688 WARNING: CGUIWindowManager - HandleAction - ignoring action 107, because topmost modal dialog closing animation is running