Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#33674 closed Bug (needsinfo)

Timezones cause 500 errors to not email the site admin

Reported by: iragm Owned by:
Component: Error reporting Version: 4.0
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by iragm)

I believe I have found a bug - my site was working great prior to adding support for localization/timezones and if a user encountered a 500 internal server error, I'd get an email about it and could fix it. I added support for timezones, and stopped getting the alert emails -- and the users are no longer sent to my 500 page.

Here's some information:

  • debug=True causes things to work correctly (no email sent, debug info displayed to the user)
  • this does not happen in a development environment at all as far as I can tell
  • I am using Channels and Daphne to serve content behind an Nginx reverse proxy
  • Edit: using python3 manage.py runserver with debug=False returns the correct 500 page. This issue is only happening when running with Daphne.
  • When 500 errors happen, the user gets redirected to a very generic Daphne "exception inside application" page. Before you blame this on Daphne, please keep reading...
  • The error log traceback points to site-packages/django/templatetags/tz.py

If I change this class to look as follows:

    def render(self, context):
        try:
            with timezone.override(self.tz.resolve(context)):
                output = self.nodelist.render(context)
            return output
        except:
            return self.nodelist.render(context)

the correct 500 error page is rendered and the email goes out to me telling me where the error occurred. That suggests to me that something in timezone.override isn't working as it should be.

I could just make a PR with this but I am not really sure what consequences this change has.

I know there's a lack of info in this, and I apologize in advance. Because I only see this issue on my production server, I have to take my whole site down to try to test and troubleshoot it.

Change History (8)

comment:1 by iragm, 3 years ago

Description: modified (diff)

comment:2 by Carlton Gibson, 3 years ago

Resolution: needsinfo
Status: newclosed

Hi, thanks for the report.

Can I ask you to flesh it out?

The error log traceback points to site-packages/django/templatetags/tz.py

Can you provide the traceback here please? (Specifically, we need to see what the exception is that you're catching with the added except there...)

Thanks.

Version 0, edited 3 years ago by Carlton Gibson (next)

comment:3 by iragm, 3 years ago

2022-05-03 06:47:54,594 ERROR    Exception inside application: 'No time zone found with key '
Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
    response = await wrapped_callback(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/opt/production/lib/python3.9/site-packages/asgiref/current_thread_executor.py", line 22, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 455, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/generic/base.py", line 84, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/production/fishauctions/./auctions/views.py", line 2242, in dispatch
    raise DeliberateError("break stuff")
NameError: name 'DeliberateError' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/opt/production/lib/python3.9/site-packages/debug_toolbar/middleware.py", line 48, in __call__
    return self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 204, in __call__
    return call_result.result()
  File "/usr/lib/python3.9/concurrent/futures/_base.py", line 438, in result
    return self.__get_result()
  File "/usr/lib/python3.9/concurrent/futures/_base.py", line 390, in __get_result
    raise self._exception
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 270, in main_wrap
    result = await self.awaitable(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 12, in load_tzdata
    return importlib.resources.open_binary(package_name, resource_name)
  File "/usr/lib/python3.9/importlib/resources.py", line 88, in open_binary
    package = _get_package(package)
  File "/usr/lib/python3.9/importlib/resources.py", line 49, in _get_package
    module = _resolve(package)
  File "/usr/lib/python3.9/importlib/resources.py", line 40, in _resolve
    return import_module(name)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'tzdata'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/channels/routing.py", line 71, in __call__
    return await application(scope, receive, send)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/asgi.py", line 155, in __call__
    await self.handle(scope, receive, send)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/asgi.py", line 177, in handle
    response = await self.get_response_async(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/base.py", line 162, in get_response_async
    response = await self._middleware_chain(request)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 455, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 57, in inner
    response = response_for_exception(request, exc)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 146, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 24, in load_tzdata
    raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key '

comment:4 by Carlton Gibson, 3 years ago

Thanks.

ModuleNotFoundError: No module named 'tzdata'

Can you try pip install tzdata please?

(What's your platform info please? And what timezone are you trying to set? 🤔)

comment:5 by iragm, 3 years ago

tzinfo was not installed. I am not sure what to make of that, I would have expected pip to install it. This is true both in my dev environment which has always worked, and production, which only works when I add in the try stuff:

Looks like we are now getting an error "Is a directory". I am going to take a guess that NO timezone at all is being set by Daphne when an error happens, which causes the path to go to the root folder rather than the (for example) America folder and find the New_York file.

2022-05-04 08:19:20,317 ERROR    Exception inside application: [Errno 21] Is a directory: '/opt/production/lib/python3.9/site-packages/tzdata/zoneinfo'
Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
    response = await wrapped_callback(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/opt/production/lib/python3.9/site-packages/asgiref/current_thread_executor.py", line 22, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 455, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/generic/base.py", line 84, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/production/fishauctions/./auctions/views.py", line 2245, in dispatch
    raise UnknownError()
NameError: name 'UnknownError' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 145, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 12, in load_tzdata
    return importlib.resources.open_binary(package_name, resource_name)
  File "/usr/lib/python3.9/importlib/resources.py", line 91, in open_binary
    return reader.open_resource(resource)
  File "<frozen importlib._bootstrap_external>", line 1055, in open_resource
IsADirectoryError: [Errno 21] Is a directory: '/opt/production/lib/python3.9/site-packages/tzdata/zoneinfo'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/deprecation.py", line 150, in __acall__
    response = response or await self.get_response(request)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 44, in inner
    response = await sync_to_async(
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/production/lib/python3.9/site-packages/asgiref/sync.py", line 453, in thread_handler
    return func(*args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
    response = handle_uncaught_exception(
  File "/opt/production/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
    return callback(request)
  File "/opt/production/lib/python3.9/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/production/lib/python3.9/site-packages/django/views/defaults.py", line 102, in server_error
    return HttpResponseServerError(template.render())
  File "/opt/production/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
    return self.template.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 175, in render
    return self._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
    return compiled_parent._render(context)
  File "/opt/production/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "/opt/production/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
    return self.render(context)
  File "/opt/production/lib/python3.9/site-packages/django/templatetags/tz.py", line 145, in render
    with timezone.override(self.tz.resolve(context)):
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 157, in __enter__
    activate(self.timezone)
  File "/opt/production/lib/python3.9/site-packages/django/utils/timezone.py", line 121, in activate
    _active.value = zoneinfo.ZoneInfo(timezone)
  File "/usr/lib/python3.9/zoneinfo/_common.py", line 12, in load_tzdata
    return importlib.resources.open_binary(package_name, resource_name)
  File "/usr/lib/python3.9/importlib/resources.py", line 91, in open_binary
    return reader.open_resource(resource)
  File "<frozen importlib._bootstrap_external>", line 1055, in open_resource
IsADirectoryError: [Errno 21] Is a directory: '/opt/production/lib/python3.9/site-packages/tzdata/zoneinfo'

During handling of the above exception, another exception occurred:

The time zone is supposed to be set via a cookie in my base.html file. My settings look like this:

TIME_ZONE = os.environ['TIME_ZONE']
# this is set correctly to: 'America/New_York'

USE_I18N = False

USE_L10N = False

USE_TZ = True

At the top of base.html:

{% load tz %}
{% load l10n %}
{% timezone user_timezone %}

And user_timezone is set by a context processor:

def add_tz(request):
    """
    Add timezone cookie - example: 'America/New_York'
    This is set via js with Intl.DateTimeFormat().resolvedOptions().timeZone
    """
    user_timezone = ""
    user_timezone_set = False
    try:
        if request.COOKIES['user_timezone']:
            user_timezone = request.COOKIES['user_timezone']
            user_timezone_set = True
    except:
        pass
    if not user_timezone:
        user_timezone = "America/Chicago"
        user_timezone_set = False
    return {'user_timezone': user_timezone, 'user_timezone_set': user_timezone_set}

I believe this context processor is not getting called when the 500 error occurs, so user_timezone is probably either None or an empty string. So that could be the issue.

One of the things that I like about Django is that when I do something stupid it tells me in the form of the error email - that should happen even if the {% timezone user_timezone %} tag is not set correctly, right?

comment:6 by Carlton Gibson, 3 years ago

tzinfo was not installed. I am not sure what to make of that, I would have expected pip to install it.

You mean tzdata? — This is why I asked your OS, etc. It's quite unexpected that your system would not have the timezone database available, and installed in the expected locations. The tzdata package is a fallback provided for such circumstances, which usually just means Windows, for which it is installed automatically.

Can I ask you for a minimal reproduce project. There's too much that could be going on here: is it your system, is it Daphne, is it Django?
It's hard to diagnose a solution otherwise.

...that should happen even if the {% timezone user_timezone %} tag is not set correctly, right?

As phrased, likely, yes, but how's it coming up? IsADirectoryError — if this is a system error, it may be out-of-scope to try and work around. (Not sure yet.)

Thanks!

Last edited 3 years ago by Carlton Gibson (previous) (diff)

comment:7 by iragm, 3 years ago

Yeah, sorry tzdata, not tzinfo. My system is an Ubuntu 21.10 desktop system. At this point, it'll take me a couple days to set up another dev environment and strip things down to a very simple case, so it's not worth the time IMHO.

I'll just leave the try/except logic in my tz.py and keep hand editing it each time I update.

Thanks for taking the time to reply, I really appreciate it.

comment:8 by Carlton Gibson, 3 years ago

OK, thanks. If you are able to put together a reproducer, that would be good to see.

Note: See TracTickets for help on using tickets.
Back to Top