question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Netflix plugin (0.15.1) not starting with ProfilesMissing exception

See original GitHub issue

Today 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:closed
  • Created 4 years ago
  • Comments:14 (1 by maintainers)

github_iconTop GitHub Comments

1reaction
Smeulfcommented, Aug 31, 2019

Well @setegonz, should you see the error again, please fill a new issue with full logs 😃 Enjoy your videos!

0reactions
EarthKcommented, Apr 11, 2020

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

Read more comments on GitHub >

github_iconTop Results From Across the Web

No results found

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found