Frappe - TypeError: cannot unpack non-iterable NoneType object

TypeError

TypeError: cannot unpack non-iterable NoneType object

Traceback (most recent call last)

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/auth.py”, line 118, in __init__

self.make_session(resume=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/auth.py”, line 204, in make_session

frappe.local.session_obj = Session(

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/sessions.py”, line 209, in __init__

self.resume() ^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/sessions.py”, line 277, in resume

validate_ip_address(self.user) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/auth.py”, line 434, in validate_ip_address

ip_list = get_restricted_ip_list(user_info) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/core/doctype/user/user.py”, line 1288, in get_restricted_ip_list

if not user.restrict_ip: ^^^^^^^^^^^^^^^^

  • During handling of the above exception, another exception occurred:

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/app.py”, line 95, in application

init_request(request) ^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/app.py”, line 191, in init_request

frappe.local.http_request = HTTPRequest() ^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/auth.py”, line 42, in __init__

self.set_session() ^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/auth.py”, line 76, in set_session

frappe.local.login_manager = LoginManager() ^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/auth.py”, line 123, in __init__

self.get_user_info() ^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/auth.py”, line 162, in get_user_info

self.user_type = self.info.user_type ^^^^^^^^^^^^^^^^^^^

  • During handling of the above exception, another exception occurred:

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/serve.py”, line 20, in get_response

response = renderer_instance.render() ^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py”, line 84, in render

html = self.get_html() ^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/utils.py”, line 523, in cache_html_decorator

html = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py”, line 99, in get_html

self.post_process_context() ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py”, line 107, in post_process_context

self.set_user_info() ^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py”, line 306, in set_user_info

info = get_fullname_and_avatar(frappe.session.user) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/utils/user.py”, line 289, in get_fullname_and_avatar

first_name, last_name, avatar, name = frappe.db.get_value( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • During handling of the above exception, another exception occurred:

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/middlewares.py”, line 16, in __call__

return super().call(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/env/lib/python3.12/site-packages/werkzeug/middleware/shared_data.py”, line 249, in __call__

return self.app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/env/lib/python3.12/site-packages/werkzeug/middleware/shared_data.py”, line 249, in __call__

return self.app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/app.py”, line 74, in application

app(environ, start_response), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/env/lib/python3.12/site-packages/werkzeug/wrappers/request.py”, line 189, in application

resp = f(*args[:-2] + (request,)) ^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/app.py”, line 128, in application

response = handle_exception(e) ^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/app.py”, line 391, in handle_exception

response = get_response(“message”, http_status_code=http_status_code) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/serve.py”, line 28, in get_response

response = ErrorPage(exception=e).render() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py”, line 84, in render

html = self.get_html() ^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/utils.py”, line 523, in cache_html_decorator

html = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py”, line 99, in get_html

self.post_process_context() ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py”, line 107, in post_process_context

self.set_user_info() ^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py”, line 306, in set_user_info

info = get_fullname_and_avatar(frappe.session.user) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • File “/home/kim-frappe/frappe-bench/apps/frappe/frappe/utils/user.py”, line 289, in get_fullname_and_avatar

first_name, last_name, avatar, name = frappe.db.get_value( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TypeError: cannot unpack non-iterable NoneType object

The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.

To switch between the interactive traceback and the plaintext one, you can click on the “Traceback” headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.

You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:

  • dump() shows all variables in the frame
  • dump(obj) dumps all that’s known about the object