Forgot password/reset password not working

Hi,

We are facing issue for forget password/reset password

every time we are getting issue like

This is for the Forget password

request_password_change(email, request.is_secure()): OSError(13, ‘Permission denied’)

Following is for the reset password

2020-04-07 16:38:15,157 INFO 129 [tracking] logger.py:50 - {"username": "babby102", "event_type": "/api/user/v1/accounts/babby102", "ip": "172.18.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36", "host": "localhost:8000", "referer": "http://localhost:8000/account/settings", "accept_language": "en-US,en;q=0.9,te;q=0.8", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 22, "org_id": "", "course_id": "", "path": "/api/user/v1/accounts/babby102"}, "time": "2020-04-07T16:38:15.157509+00:00", "page": null}
2020-04-07 16:38:15,178 WARNING 129 [edx_rest_framework_extensions.auth.jwt.middleware] middleware.py:62 - The view AccountViewSet allows Jwt Authentication but needs to include the NotJwtRestrictedApplication permission class (adding it for you)
[07/Apr/2020 16:38:15] "GET /api/user/v1/accounts/babby102 HTTP/1.1" 200 790
2020-04-07 16:38:15,342 INFO 129 [tracking] logger.py:50 - {"username": "babby102", "event_type": "/api/user/v1/preferences/babby102", "ip": "172.18.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36", "host": "localhost:8000", "referer": "http://localhost:8000/account/settings", "accept_language": "en-US,en;q=0.9,te;q=0.8", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 22, "org_id": "", "course_id": "", "path": "/api/user/v1/preferences/babby102"}, "time": "2020-04-07T16:38:15.342532+00:00", "page": null}
[07/Apr/2020 16:38:15] "GET /api/user/v1/preferences/babby102 HTTP/1.1" 200 18
2020-04-07 16:38:15,471 INFO 129 [tracking] logger.py:42 - {"username": "babby102", "event_source": "browser", "name": "edx.user.settings.viewed", "accept_language": "en-US,en;q=0.9,te;q=0.8", "time": "2020-04-07T16:38:15.470835+00:00", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36", "page": "http://localhost:8000/account/settings", "host": "localhost:8000", "session": "e40cb66f2667e78e71926a9b00263283", "referer": "http://localhost:8000/account/settings", "context": {"user_id": 22, "org_id": "", "course_id": "", "path": "/event"}, "ip": "172.18.0.1", "event": "{\"user_id\": 22, \"page\": \"account\", \"visibility\": null}", "event_type": "edx.user.settings.viewed"}
[07/Apr/2020 16:38:15] "POST /event HTTP/1.1" 200 7
2020-04-07 16:38:44,561 INFO 129 [tracking] logger.py:50 - {"username": "babby102", "event_type": "/password_reset/", "ip": "172.18.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36", "host": "localhost:8000", "referer": "http://localhost:8000/account/settings", "accept_language": "en-US,en;q=0.9,te;q=0.8", "event": "{\"POST\": {\"email\": [\"babby102102@gmail.com\"]}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 22, "org_id": "", "course_id": "", "path": "/password_reset/"}, "time": "2020-04-07T16:38:44.561777+00:00", "page": null}
2020-04-07 16:38:44,606 ERROR 129 [root] signals.py:21 - Uncaught exception from None
Traceback (most recent call last):
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 185, in inner
    return func(*args, **kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/views/decorators/http.py", line 40, in inner
    return func(request, *args, **kwargs)
  File "/openedx/edx-platform/common/djangoapps/student/views/management.py", line 792, in password_reset
    request=request)
  File "/openedx/edx-platform/common/djangoapps/student/forms.py", line 133, in save
    send_password_reset_email_for_user(user, request)
  File "/openedx/edx-platform/common/djangoapps/student/forms.py", line 64, in send_password_reset_email_for_user
    ace.send(msg)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/ace.py", line 59, in send
    delivery.deliver(channel, rendered_message, msg)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/delivery.py", line 54, in deliver
    channel.deliver(message, rendered_message)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/channel/file.py", line 91, in deliver
    make_parent_directories(output_file_path)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/channel/file.py", line 101, in make_parent_directories
    os.makedirs(parent_dir_path)
  File "/openedx/venv/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/openedx/venv/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/openedx/venv/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/edx'
Internal Server Error: /password_reset/
Traceback (most recent call last):
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 185, in inner
    return func(*args, **kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/views/decorators/http.py", line 40, in inner
    return func(request, *args, **kwargs)
  File "/openedx/edx-platform/common/djangoapps/student/views/management.py", line 792, in password_reset
    request=request)
  File "/openedx/edx-platform/common/djangoapps/student/forms.py", line 133, in save
    send_password_reset_email_for_user(user, request)
  File "/openedx/edx-platform/common/djangoapps/student/forms.py", line 64, in send_password_reset_email_for_user
    ace.send(msg)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/ace.py", line 59, in send
    delivery.deliver(channel, rendered_message, msg)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/delivery.py", line 54, in deliver
    channel.deliver(message, rendered_message)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/channel/file.py", line 91, in deliver
    make_parent_directories(output_file_path)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/channel/file.py", line 101, in make_parent_directories
    os.makedirs(parent_dir_path)
  File "/openedx/venv/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/openedx/venv/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/openedx/venv/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/edx'
2020-04-07 16:38:44,652 ERROR 129 [django.request] exception.py:135 - Internal Server Error: /password_reset/
Traceback (most recent call last):
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 185, in inner
    return func(*args, **kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/openedx/venv/local/lib/python2.7/site-packages/django/views/decorators/http.py", line 40, in inner
    return func(request, *args, **kwargs)
  File "/openedx/edx-platform/common/djangoapps/student/views/management.py", line 792, in password_reset
    request=request)
  File "/openedx/edx-platform/common/djangoapps/student/forms.py", line 133, in save
    send_password_reset_email_for_user(user, request)
  File "/openedx/edx-platform/common/djangoapps/student/forms.py", line 64, in send_password_reset_email_for_user
    ace.send(msg)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/ace.py", line 59, in send
    delivery.deliver(channel, rendered_message, msg)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/delivery.py", line 54, in deliver
    channel.deliver(message, rendered_message)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/channel/file.py", line 91, in deliver
    make_parent_directories(output_file_path)
  File "/openedx/venv/local/lib/python2.7/site-packages/edx_ace/channel/file.py", line 101, in make_parent_directories
    os.makedirs(parent_dir_path)
  File "/openedx/venv/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/openedx/venv/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/openedx/venv/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/edx'
[07/Apr/2020 16:38:44] "POST /password_reset/ HTTP/1.1" 500 114403

appreciate if you can find the reason why this is happening?

Thanks in advance.

Hi! This is happening in development, right? This comes from the fact that edx-ace attempts to create the /edx folder. (This is caused by this horriiiiible line of code https://github.com/edx/edx-ace/blob/6b203f7280d038447328094649b58862f0abe794/edx_ace/channel/file.py#L20). In development, the user inside the docker container is not root so it does not have the rights to create this folder.

This error does not occur in production, as I verified, so I consider this a low priority issue. Would you be so kind as to create a github issue that links to this conversation? https://github.com/overhangio/tutor/issues/

Thanks @regis,

How ever I do verify this in production it working fine.

Regards,
VS

Issue was created here: https://github.com/overhangio/tutor/issues/315 thanks @vsvvssrao!