humante/redis-browser

cant seem to use this inside of rails

Opened this issue · 2 comments

jtoy commented

Is the code still working?
I set it as a rails engine and my initializer is setup as:
cat config/initializers/redis-browser.rb
RedisBrowser.configure( 'connections' => { 'default' => ENV["REDIS_URL"] })

and when I go to the page I get this:
https://cln.sh/VxlsNSm4ph37Kjk4ptvW
is there anything else that needs to be done to get this to work?

The js console has these errors:
https://cln.sh/5KXRtrBr9HLR4fggPb8B

I also having the same issue

Gem versions

  • ruby 3.1.3
  • rails 7.0.4
  • redis-browser 0.5.1
  • redis-client 0.14.1

Exception Logs

10:34:28 web.1    | 2023-12-29 10:34:28 - NoMethodError - undefined method `coffee' for #<RedisBrowser::CoffeeHandler:0x00007f3dbe51c220 @default_layout=:layout, @preferred_extension=nil, @app=#<RedisBrowser::Web:0x00007f3dbc031a78 @default_layout=:layout, @preferred_extension=nil, @app=nil, @template_cache=#<Tilt::Cache:0x00007f3dbc031938 @cache={[:slim, :index, {:outvar=>"@_out_buf", :default_encoding=>"utf-8"}, "/usr/local/bundle/gems/redis-browser-0.5.1/lib/redis-browser/templates"]=>#<Slim::Template:0x00007f3dbc01cab0 @options={:outvar=>"@_out_buf"}, @line=1, @file="/usr/local/bundle/gems/redis-browser-0.5.1/lib/redis-browser/templates/index.slim", @compiled_method={[RedisBrowser::Web, []]=>#<UnboundMethod: Tilt::CompiledTemplates#__tilt_27100(locals) /usr/local/bundle/gems/redis-browser-0.5.1/lib/redis-browser/templates/index.slim:-2>}, @default_encoding="utf-8", @skip_compiled_encoding_detection=nil, @data="doctype html\nhtml ng-app=\"browser\"\n  head\n    title Redis Browser\n\n    script type=\"text/javascript\" src=\"\#{root_path}js/angular.min.js\"\n    script type=\"text/javascript\" src=\"\#{root_path}js/ui-bootstrap-tpls-0.2.0.min.js\"\n    script type=\"text/javascript\" src=\"\#{root_path}js/localStorageModule.js\"\n    script type=\"text/javascript\" src=\"\#{root_path}js/app.js\"\n    script type=\"text/javascript\" src=\"https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js\"\n\n    link rel=\"stylesheet\" href=\"\#{root_path}css/bootstrap.min.css\"\n    link rel=\"stylesheet\" href=\"\#{root_path}css/app.css\"\n    link rel=\"stylesheet\" href=\"\#{root_path}css/github.css\"\n\n    script type=\"text/javascript\"\n      == js_env\n\n    script type=\"text/ng-template\" id=\"nav-tree-item.html\"\n      span ng-show=\"key.count > 1\"\n        button.btn.tree-toggle ng-hide=\"key.open\" ng-click=\"keyOpen(key)\" +\n        button.btn.tree-toggle ng-show=\"key.open\" ng-click=\"keyClose(key)\" -\n      span ng-show=\"key.count == 1\" -&nbsp;\n\n      a href=\"\\\#{{key.full}}\" ng-click=\"show(key)\"\n        ' {{ key.name }}\n        small ng-show=\"key.count > 1\"\n          | ({{ key.count }})\n\n      ul.tree ng-show=\"key.open\"\n        li ng-repeat=\"key in key.children\" ng-include=\"'nav-tree-item.html'\"\n\n\n\n  body ng-controller=\"BrowserCtrl\"\n    #http-loader Loading...\n    div modal=\"config.show\" close=\"config.close()\" options=\"config.modalOpts\"\n      .form-horizontal\n        .modal-header\n          button.close type=\"button\" ng-click=\"config.close()\" &times;\n          h4 Configure Redis Connection\n        .modal-body\n          .control-group\n            label.control-label for=\"config-connection\" Connection\n            .controls\n              select id=\"config-connection\" ng-model=\"config.connection\" ng-options=\"name as name for (name, opts) in connections\" ng-required=\"required\"\n\n        .modal-footer\n          span.alert.alert-error.pull-left ng-show=\"config.error\"\n            ' {{ config.error }}\n          button.btn.btn-success type=\"submit\" ng-click=\"config.save()\" Save\n\n    .navbar.navbar-inverse.navbar-fixed-top\n      .navbar-inner\n        .container-fluid\n          button.btn.btn-navbar type=\"button\" data-toggle=\"collapse\" data-target=\".nav-collapse\"\n            span.icon-bar\n            span.icon-bar\n          a.brand href=\"/\" Redis Browser\n\n          .nav-collapse.collapse\n            p.pull-right\n              button.btn.btn-success ng-click=\"config.open()\" Configure\n            p.navbar-text.pull-right.connection-info\n              ' Connected to\n              strong\n                ' {{ config.connection }}\n\n\n    .container-fluid\n      .row-fluid\n        .span3\n          .well.sidebar-nav\n            ul.nav.nav-list\n              li.nav-header\n                ' Keys\n                button.btn.btn-mini.pull-right ng-click=\"fetchKeys()\" Reload\n            ul.tree\n              li ng-repeat=\"key in keys\" ng-include=\"'nav-tree-item.html'\"\n        .span9\n          h4\n            ' {{ key.full }}\n            small\n            ' {{ key.type }}\n\n          div ng-switch=\"key.type\"\n            pre ng-switch-when=\"string\" prettyprint=\"key.value\"\n\n            pre ng-switch-when=\"json\"\n              ' {{ key.value | json }}\n\n            div ng-switch-when=\"set\"\n              table.table.table-striped.table-bordered.value-list\n                tr ng-repeat=\"e in key.values\"\n                  td ng-switch=\"e.type\"\n                    pre ng-switch-when=\"json\"\n                      ' {{ e.value | json }}\n                    pre ng-switch-default=\"\" prettyprint=\"e.value\"\n                      ' {{ e.value }}\n\n            div ng-switch-when=\"zset\"\n              table.table.table-striped.table-bordered.value-list\n                tr\n                  th Value\n                  th.value-zset-score Score\n                tr ng-repeat=\"e in key.values\"\n                  td ng-switch=\"e.type\"\n                    pre ng-switch-when=\"json\"\n                      ' {{ e.value | json }}\n                    pre ng-switch-default=\"\" prettyprint=\"e.value\"\n                  td\n                    ' {{ e.score }}\n\n\n            div ng-switch-when=\"hash\"\n\n              div ng-show=\"config.hashView == 'json'\"\n                div\n                  button.btn.btn-primary.pull-right ng-click=\"config.setHashView('table')\" Switch to Table view\n                pre\n                  ' {{ key.json | json }}\n\n              div ng-show=\"config.hashView == 'table'\"\n                table.table.table-striped.table-bordered.value-list\n                  tr\n                    th Key\n                    th\n                      ' Value\n                      button.btn.btn-primary.pull-right ng-click=\"config.setHashView('json')\" Switch to JSON view\n                  tr ng-repeat=\"(k,e) in key.value\"\n                    td\n                      ' {{ k }}\n                    td ng-switch=\"e.type\"\n                      pre ng-switch-when=\"json\"\n                        ' {{ e.value | json }}\n                      pre ng-switch-default=\"\" prettyprint=\"e.value\"\n\n            div ng-switch-when=\"list\"\n              .alert\n                ' Showing\n                strong\n                  ' {{ list.per_page }}\n                ' items from\n                strong\n                  ' {{ list.start }}\n                ' to\n                strong\n                  ' {{ list.stop }}\n                ' out of\n                strong\n                  ' {{ key.length }}\n                ' ( {{ list.pages }} pages )\n\n              .row-fluid\n                .span8\n                  pagination boundary-links=\"true\" num-pages=\"list.pages\" current-page=\"list.current\" max-size=\"list.max\"\n\n                .span4\n                  .dropdown.per-page\n                    a.dropdown-toggle\n                      | {{ list.per_page }} per page\n                    ul.dropdown-menu\n                      li ng-repeat=\"i in [10,20,50,100,200]\"\n                        a ng-click=\"setPerPage(i)\" {{ i }}\n\n              table.table.table-striped.table-bordered.value-list\n                tr\n                  th.value-list-index Index\n                  th Value\n                tr ng-repeat=\"e in key.values\"\n                  td\n                    ' {{ e.index }}\n                  td ng-switch=\"e.type\"\n                    pre ng-switch-when=\"json\"\n                      ' {{ e.value | json }}\n                    pre ng-switch-default=\"\" prettyprint=\"e.value\"\n\n              pagination boundary-links=\"true\" num-pages=\"list.pages\" current-page=\"list.current\" max-size=\"list.max\"\n\n            span.alert.alert-success ng-switch-when=\"empty\" Select something on the left\n\n            div ng-switch-default=\"\"\n              table.table.table-striped.table-bordered\n                tr\n                  th Keys\n                  th.keys-search\n                    input.input-medium.search-query type=\"text\" ng-model=\"query\" placeholder=\"Search\"\n                tr ng-repeat=\"e in key.values | filter:query\"\n                  td\n                    a href=\"\\\#{{e.full}}\" ng-click=\"show(e)\"\n                      ' {{ e.name }}\n                  td\n                    button.btn.btn-danger ng-click=\"deleteKey(e)\" Delete\n                tr\n                  td\n                  td\n                    button.btn.btn-danger ng-click=\"deleteAll()\" Delete ALL\n\n\n              / span.alert.alert-danger Key not found\n", @src="begin; _temple_generators_stringbuffer1 = @_out_buf if defined?(@_out_buf); @_out_buf = ''.dup; @_out_buf << (\"<!DOCTYPE html><html ng-app=\\\"browser\\\"><head><title>Redis Browser</title><script src=\\\"\".freeze); \n; \n; \n; \n; \n; @_out_buf << ((::Temple::Utils.escape_html_safe((root_path))).to_s); @_out_buf << (\"js/angular.min.js\\\" type=\\\"text/javascript\\\"></script><script src=\\\"\".freeze); \n; @_out_buf << ((::Temple::Utils.escape_html_safe((root_path))).to_s); @_out_buf << (\"js/ui-bootstrap-tpls-0.2.0.min.js\\\" type=\\\"text/javascript\\\"></script><script src=\\\"\".freeze); \n; @_out_buf << ((::Temple::Utils.escape_html_safe((root_path))).to_s); @_out_buf << (\"js/localStorageModule.js\\\" type=\\\"text/javascript\\\"></script><script src=\\\"\".freeze); \n; @_out_buf << ((::Temple::Utils.escape_html_safe((root_path))).to_s); @_out_buf << (\"js/app.js\\\" type=\\\"text/javascript\\\"></script><script src=\\\"https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js\\\" type=\\\"text/javascript\\\"></script><link href=\\\"\".freeze); \n; \n; \n; @_out_buf << ((::Temple::Utils.escape_html_safe((root_path))).to_s); @_out_buf << (\"css/bootstrap.min.css\\\" rel=\\\"stylesheet\\\" /><link href=\\\"\".freeze); \n; @_out_buf << ((::Temple::Utils.escape_html_safe((root_path))).to_s); @_out_buf << (\"css/app.css\\\" rel=\\\"stylesheet\\\" /><link href=\\\"\".freeze); \n; @_out_buf << ((::Temple::Utils.escape_html_safe((root_path))).to_s); @_out_buf << (\"css/github.css\\\" rel=\\\"stylesheet\\\" /><script type=\\\"text/javascript\\\">\".freeze); \n; \n; \n; @_out_buf << ((js_env).to_s); \n; \n; @_out_buf << (\"</script><script id=\\\"nav-tree-item.html\\\" type=\\\"text/ng-template\\\"><span ng-show=\\\"key.count &gt; 1\\\"><button class=\\\"btn tree-toggle\\\" ng-click=\\\"keyOpen(key)\\\" ng-hide=\\\"key.open\\\">+</button><button class=\\\"btn tree-toggle\\\" ng-click=\\\"keyClose(key)\\\" ng-show=\\\"key.open\\\">-</button></span><span ng-show=\\\"key.count == 1\\\">-&nbsp;</span><a href=\\\"\\\#{{key.full}}\\\" ng-click=\\\"show(key)\\\">{{ key.name }} <small ng-show=\\\"key.count &gt; 1\\\">({{ key.count }})</small></a><ul class=\\\"tree\\\" ng-show=\\\"key.open\\\"><li ng-include=\\\"&#39;nav-tree-item.html&#39;\\\" ng-repeat=\\\"key in key.children\\\"></li></ul></script></head><body ng-controller=\\\"BrowserCtrl\\\"><div id=\\\"http-loader\\\">Loading...</div><div close=\\\"config.close()\\\" modal=\\\"config.show\\\" options=\\\"config.modalOpts\\\"><div class=\\\"form-horizontal\\\"><div class=\\\"modal-header\\\"><button class=\\\"close\\\" ng-click=\\\"config.close()\\\" type=\\\"button\\\">&times;</button><h4>Configure Redis Connection</h4></div><div class=\\\"modal-body\\\"><div class=\\\"control-group\\\"><label class=\\\"control-label\\\" for=\\\"config-connection\\\">Connection</label><div class=\\\"controls\\\"><select id=\\\"config-connection\\\" ng-model=\\\"config.connection\\\" ng-options=\\\"name as name for (name, opts) in connections\\\" ng-required=\\\"required\\\"></select></div></div></div><div class=\\\"modal-footer\\\"><span class=\\\"alert alert-error pull-left\\\" ng-show=\\\"config.error\\\">{{ config.error }} </span><button class=\\\"btn btn-success\\\" ng-click=\\\"config.save()\\\" type=\\\"submit\\\">Save</button></div></div></div><div class=\\\"navbar navbar-inverse navbar-fixed-top\\\"><div class=\\\"navbar-inner\\\"><div class=\\\"container-fluid\\\"><button class=\\\"btn btn-navbar\\\" data-target=\\\".nav-collapse\\\" data-toggle=\\\"collapse\\\" type=\\\"button\\\"><span class=\\\"icon-bar\\\"></span><span class=\\\"icon-bar\\\"></span></button><a class=\\\"brand\\\" href=\\\"/\\\">Redis Browser</a><div class=\\\"nav-collapse collapse\\\"><p class=\\\"pull-right\\\"><button class=\\\"btn btn-success\\\" ng-click=\\\"config.open()\\\">Configure</button></p><p class=\\\"navbar-text pull-right connection-info\\\">Connected to <strong>{{ config.connection }} </strong></p></div></div></div></div><div class=\\\"container-fluid\\\"><div class=\\\"row-fluid\\\"><div class=\\\"span3\\\"><div class=\\\"well sidebar-nav\\\"><ul class=\\\"nav nav-list\\\"><li class=\\\"nav-header\\\">Keys <button class=\\\"btn btn-mini pull-right\\\" ng-click=\\\"fetchKeys()\\\">Reload</button></li></ul><ul class=\\\"tree\\\"><li ng-include=\\\"&#39;nav-tree-item.html&#39;\\\" ng-repeat=\\\"key in keys\\\"></li></ul></div></div><div class=\\\"span9\\\"><h4>{{ key.full }} <small></small>{{ key.type }} </h4><div ng-switch=\\\"key.type\\\"><pre ng-switch-when=\\\"string\\\" prettyprint=\\\"key.value\\\"></pre><pre ng-switch-when=\\\"json\\\">{{ key.value | json }} </pre><div ng-switch-when=\\\"set\\\"><table class=\\\"table table-striped table-bordered value-list\\\"><tr ng-repeat=\\\"e in key.values\\\"><td ng-switch=\\\"e.type\\\"><pre ng-switch-when=\\\"json\\\">{{ e.value | json }} </pre><pre ng-switch-default=\\\"\\\" prettyprint=\\\"e.value\\\">{{ e.value }} </pre></td></tr></table></div><div ng-switch-when=\\\"zset\\\"><table class=\\\"table table-striped table-bordered value-list\\\"><tr><th>Value</th><th class=\\\"value-zset-score\\\">Score</th></tr><tr ng-repeat=\\\"e in key.values\\\"><td ng-switch=\\\"e.type\\\"><pre ng-switch-when=\\\"json\\\">{{ e.value | json }} </pre><pre ng-switch-default=\\\"\\\" prettyprint=\\\"e.value\\\"></pre></td><td>{{ e.score }} </td></tr></table></div><div ng-switch-when=\\\"hash\\\"><div ng-show=\\\"config.hashView == &#39;json&#39;\\\"><div><button class=\\\"btn btn-primary pull-right\\\" ng-click=\\\"config.setHashView(&#39;table&#39;)\\\">Switch to Table view</button></div><pre>{{ key.json | json }} </pre></div><div ng-show=\\\"config.hashView == &#39;table&#39;\\\"><table class=\\\"table table-striped table-bordered value-list\\\"><tr><th>Key</th><th>Value <button class=\\\"btn btn-primary pull-right\\\" ng-click=\\\"config.setHashView(&#39;json&#39;)\\\">Switch to JSON view</button></th></tr><tr ng-repeat=\\\"(k,e) in key.value\\\"><td>{{ k }} </td><td ng-switch=\\\"e.type\\\"><pre ng-switch-when=\\\"json\\\">{{ e.value | json }} </pre><pre ng-switch-default=\\\"\\\" prettyprint=\\\"e.value\\\"></pre></td></tr></table></div></div><div ng-switch-when=\\\"list\\\"><div class=\\\"alert\\\">Showing <strong>{{ list.per_page }} </strong>items from <strong>{{ list.start }} </strong>to <strong>{{ list.stop }} </strong>out of <strong>{{ key.length }} </strong>( {{ list.pages }} pages ) </div><div class=\\\"row-fluid\\\"><div class=\\\"span8\\\"><pagination boundary-links=\\\"true\\\" current-page=\\\"list.current\\\" max-size=\\\"list.max\\\" num-pages=\\\"list.pages\\\"></pagination></div><div class=\\\"span4\\\"><div class=\\\"dropdown per-page\\\"><a class=\\\"dropdown-toggle\\\">{{ list.per_page }} per page</a><ul class=\\\"dropdown-menu\\\"><li ng-repeat=\\\"i in [10,20,50,100,200]\\\"><a ng-click=\\\"setPerPage(i)\\\">{{ i }}</a></li></ul></div></div></div><table class=\\\"table table-striped table-bordered value-list\\\"><tr><th class=\\\"value-list-index\\\">Index</th><th>Value</th></tr><tr ng-repeat=\\\"e in key.values\\\"><td>{{ e.index }} </td><td ng-switch=\\\"e.type\\\"><pre ng-switch-when=\\\"json\\\">{{ e.value | json }} </pre><pre ng-switch-default=\\\"\\\" prettyprint=\\\"e.value\\\"></pre></td></tr></table><pagination boundary-links=\\\"true\\\" current-page=\\\"list.current\\\" max-size=\\\"list.max\\\" num-pages=\\\"list.pages\\\"></pagination></div><span class=\\\"alert alert-success\\\" ng-switch-when=\\\"empty\\\">Select something on the left</span><div ng-switch-default=\\\"\\\"><table2023-12-29T10:34:28.421352863Z  class=\\\"table table-striped table-bordered\\\"><tr><th>Keys</th><th class=\\\"keys-search\\\"><input class=\\\"input-medium search-query\\\" ng-model=\\\"query\\\" placeholder=\\\"Search\\\" type=\\\"text\\\" /></th></tr><tr ng-repeat=\\\"e in key.values | filter:query\\\"><td><a href=\\\"\\\#{{e.full}}\\\" ng-click=\\\"show(e)\\\">{{ e.name }} </a></td><td><button class=\\\"btn btn-danger\\\" ng-click=\\\"deleteKey(e)\\\">Delete</button></td></tr><tr><td></td><td><button class=\\\"btn btn-danger\\\" ng-click=\\\"deleteAll()\\\">Delete ALL</button></td></tr></table></div></div></div></div></div></body></html>\".freeze); \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; \n; @_out_buf; ensure; @_out_buf = _temple_generators_stringbuffer1; end">}>, @pinned_response=nil>, @template_cache=#<Tilt::Cache:0x00007f3dbc02e580 @cache={}>, @pinned_response=nil, @env={"rack.version"=>[1, 6], "rack.errors"=>#<IO:<STDERR>>, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "rack.url_scheme"=>"http", "SCRIPT_NAME"=>"/redis-browser", "QUERY_STRING"=>"", "SERVER_SOFTWARE"=>"puma 6.4.0 The Eagle of Durango", "GATEWAY_INTERFACE"=>"CGI/1.2", "REQUEST_METHOD"=>"GET", "REQUEST_PATH"=>"/redis-browser/js/app.js", "REQUEST_URI"=>"/redis-browser/js/app.js", "SERVER_PROTOCOL"=>"HTTP/1.1", "HTTP_HOST"=>"localhost:3010", "HTTP_USER_AGENT"=>"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0", "HTTP_ACCEPT"=>"*/*", "HTTP_ACCEPT_LANGUAGE"=>"en-US,en;q=0.5", "HTTP_ACCEPT_ENCODING"=>"gzip, deflate, br", "HTTP_CONNECTION"=>"keep-alive", "HTTP_REFERER"=>"http://localhost:3010/redis-browser", ................................, "sinatra.error"=>#<NoMethodError: undefined method `coffee' for #<RedisBrowser::CoffeeHandler:0x00007f3dbe51c220 ...>
2023-12-29T10:34:28.421670405Z 10:34:28 web.1    | 
2023-12-29T10:34:28.421681333Z 10:34:28 web.1    |       coffee :app
2023-12-29T10:34:28.422033872Z 10:34:28 web.1    |       ^^^^^^>}, @params={}, @request=#<Sinatra::Request:0x00007f3dbe51c108 @params={}, @env={"rack.version"=>[1, 6], "rack.errors"=>#<IO:<STDERR>>, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "rack.url_scheme"=>"http", "SCRIPT_NAME"=>"/redis-browser", "QUERY_STRING"=>"", "SERVER_SOFTWARE"=>"puma 6.4.0 The Eagle of Durango", "GATEWAY_INTERFACE"=>"CGI/1.2", "REQUEST_METHOD"=>"GET", "REQUEST_PATH"=>"/redis-browser/js/app.js", "REQUEST_URI"=>"/redis-browser/js/app.js", "SERVER_PROTOCOL"=>"HTTP/1.1", "HTTP_HOST"=>"localhost:3010", "HTTP_USER_AGENT"=>"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0", "HTTP_ACCEPT"=>"*/*", "HTTP_ACCEPT_LANGUAGE"=>"en-US,en;q=0.5", "HTTP_ACCEPT_ENCODING"=>"gzip, deflate, br", "HTTP_CONNECTION"=>"keep-alive", "HTTP_REFERER"=>"http://localhost:3010/redis-browser", "HTTP_COOKIE"=>"platform_enabled=false; _ga=GA1.1.565714459.1702992487; _ga_RTW5QF3J99=GS1.1.1703657654.4.0.1703657654.0.0.0; BetterErrors-has-used-console=true; _application_session=fP1VWsoWRcmYQB2lHDgOJmFqYQ%2Faxx2Ei7PZRp3FEzFbAb6%2BYIvjAg5%2BS%2FOzcOpLHZ%2BgBQLNUefnKTyVedxU2gCo70xwLBk51XHnRdv8J9h%2BAB11kqqegS6UVeA8Mwg59e7wZxbthXnhYBX8YR3e3cNBlg6%2Bcb7Q7aiXrghm3AwhBwGC%2Bm7JEPyhXpKmZTGpO7%2BQZEXj70ZDT9vRSebMD%2FmNYu3gxyZScx9RA4bDAR9NaP1oJp%2BHRtrH475Xu559%2FtOVYJnMF1QQ0rZ0P7Me%2BXhC%2B1N%2Bdziprzx%2ByfSe8z%2FfFZutt8QTM%2Bcv5IwbEnYCXQ7d5fV%2BqSBfdgE90w%2FZj8f3MVSTSOcUs%2B%2FJLO6cwKK9%2FbDMjaiSYF2puW5w0d6Tibt92xJOTKdwjzAoel76198uqgx1U3XMSvZLiE4yDxUqT9nIjadyBrhDt4IdBZTK9Bv2H3hnXF%2FrPaaNEWfOBRnbSs8FCBsyeOIxrDw7LM6zv5oJVtAAxAs6ZxMWtGSiIBsk%2FqAtPbHqo8eM0MskGE63UBjMk%2BfQB0oXS5jF7fV9CHBRbxH6puqKT2pXAlFRVV16WLnwMmiyrF9BaaI%3D--v0eIVeY5GSjafp%2FV--zLbaQovg56SxrDH7FNB%2F1w%3D%3D; remember_user_token=eyJfcmFpbHMiOnsibWVzc2FnZSI6Ilcxc2lZbVUyWlRZd09UWXRaREkzTUMwME1HUTJMVGsxTkRNdFltSmlPV1ZsWVRRMU56azBJbDBzSWlReVlTUXhNaVI1ZEVWNFVqY3hORFZQUmpsemIwWmFabVU1ZUdKMUlpd2lNVGN3TXpZMU56WTBNeTQwT0RZMU5EWTFJbDA9IiwiZXhwIjoiMjAyNC0wMS0xMFQwNjoxNDowMy40ODZaIiwicHVyIjoiY29va2llLnJlbWVtYmVyX2FnZW50X2lkZW50aXR5X3Rva2VuIn19--3f2877fdc8fb249d0e31f500c4bcc297227abb6f; _application_session=dUlHeWhqTkFaWGZ5OER0VlREWjhCbHR1TVkxOUNaWjFhWjBIQTJuUlNSaVRPVGRaa3ZhMnpvWGNtUXAySUhhK29BeW5Fa2JPN3JPdzFlNmJ0dXRpalRONnViY0hSUy9kcDJwem5PczhaU0E5K1pEZHlWNU5ERG1kWW5PY0tJcFhEdlQzUGVMNWtwNkpKamVDQU9rYytkeGJnUzc1ZjFzQlA2emNYbENYUElUZU9DRDUzc3U2RFQvbEkrVVQzWUt2dlJkWWFaUmJoeFo0MDhkNXdubVdPZz09LS1ZZnJob1NEb3dyamI5Vi9iZngxdm5nPT0%3D--5cbb30b6a22493013bf2f72d96f1b2aea4190763", "HTTP_SEC_FETCH_DEST"=>"script", "HTTP_SEC_FETCH_MODE"=>"no-cors", "HTTP_SEC_FETCH_SITE"=>"same-origin", "puma.request_body_wait"=>0.002526998519897461, "SERVER_NAME"=>"localhost", "SERVER_PORT"=>"3010", "PATH_INFO"=>"/js/app.js", "REMOTE_ADDR"=>"172.18.0.1", "HTTP_VERSION"=>"HTTP/1.1", "puma.socket"=>#<TCPSocket:fd 18, AF_INET, 172.18.0.6, 3010>, "rack.hijack?"=>true, "rack.hijack"=>#<Puma::Client:0xa488 @ready=true>, "rack.input"=>#<Puma::NullIO:0x00007f3dbfae18d0>, "rack.after_reply"=>[], "puma.config"=>#<Puma::Configuration:0x00007f3dbf95fef8 @options=#<Puma::UserFileDefaultOptions:0x00007f3dbf95eb20 @user_options={:Port=>3010, :Host=>"0.0.0.0", :binds=>["tcp://0.0.0.0:3010"], :app=>#<application::Application>, :log_writer=>#<Puma::LogWriter:0x00007f3dbf9699d0 @formatter=#<Puma::LogWriter::DefaultFormatter:0x00007f3dbf969778>, @custom_logger=nil, @stdout=#<IO:<STDOUT>>, @stderr=#<IO:<STDERR>>, @debug=false, @error_logger=#<Puma::ErrorLogger:0x00007f3dbf969548 @ioerr=#<IO:<STDERR>>, @debug=false>>, :environment=>"development"}, @file_options={:min_threads=>5, :max_threads=>5, :worker_timeout=>3600, :binds=>["tcp://0.0.0.0:5000"], :environment=>"development", :pidfile=>"tmp/pids/server.pid"}, @default_options={:auto_trim_time=>30, :binds=>["tcp://0.0.0.0:9292"], :clean_thread_locals=>false, :debug=>false, :early_hints=>nil, :environment=>"development", :first_data_timeout=>30, :idle_timeout=>nil, :io_selector_backend=>:auto, :log_requests=>false, :logger=>#<IO:<STDOUT>>, :max_fast_inline=>10, :max_threads=>5, :min_threads=>0, :mode=>:http, :mutate_stdout_and_stderr_to_sync_on_write=>true, :out_of_band=>[], :persistent_timeout=>20, :queue_requests=>true, :rackup=>"config.ru", :raise_exception_on_sigterm=>true, :reaping_time=>1, :remote_address=>:socket, :silence_single_worker_warning=>false, :silence_fork_callback_warning=>false, :tag=>"src", :tcp_host=>"0.0.0.0", :tcp_port=>9292, :wait_for_less_busy_worker=>0.005, :worker_boot_timeout=>60, :worker_check_interval=>5, :worker_culling_strategy=>:youngest, :worker_shutdown_timeout=>30, :worker_timeout=>60, :workers=>0, :http_content_length_limit=>nil, :Verbose=>false, :Silent=>false, :server=>nil, :log_stdout=>true, :DoNotReverseLookup=>true, :config=>"config.ru", :daemonize=>false, :pid=>"/src/tmp/pids/server.pid", :caching=>nil, :restart_cmd=>"bin/rails server -p 3010 -b 0.0.0.0 --restart", :events=>#<Puma::Events:0x00007f3dbf9581a8 @hooks={:state=>[], :on_booted=>[]}>, :preload_app=>false}>, @plugins=#<Puma::PluginLoader:0x00007f3dbf95e4b8 @instances=[#<#<Class:0x00007f3dbf992178>:0x00007f3dbf990c60>]>, @user_dsl=#<Puma::DSL:0x00007f3dbf95e3a0 @config=#<Puma::Configuration:0x00007f3dbf95fef8 ...>, @options={:Port=>3010, :Host=>"0.0.0.0", :binds=>["tcp://0.0.0.0:3010"], :app=>#<application::Application>, :log_writer=>#<Puma::LogWriter:0x00007f3dbf9699d0 @formatter=#<Puma::LogWriter::DefaultFormatter:0x00007f3dbf969778>, @custom_logger=nil, @stdout=#<IO:<STDOUT>>, @stderr=#<IO:<STDERR>>, @debug=false, @error_logger=#<Puma::ErrorLogger:0x00007f3dbf969548 @ioerr=#<IO:<STDERR>>, @debug=false>>, :environment=>"development"}, @plugins=[]>, @file_dsl=#<Puma::DSL:0x00007f3dbf95e198 @config=#<Puma::Configuration:0x00007f3dbf95fef8 ...>, @options={:min_threads=>5, :max_threads=>5, :worker_timeout=>3600, :binds=>["tcp://0.0.0.0:5000"], :environment=>"development", :pidfile=>"tmp/pids/server.pid"}, @plugins=[], @path="config/puma.rb">, @default_dsl=#<Puma::DSL:0x00007f3dbf95d478 @config=#<Puma::Configuration:0x00007f3dbf95fef8 ...>, @options={:auto_trim_time=>30, :binds=>["tcp://0.0.0.0:9292"], :clean_thread_locals=>false, :debug=>false, :early_hints=>nil, :environment=>"development", :first_data_timeout=>30, :idle_timeout=>nil, :io_selector_backend=>:auto, :log_requests=>false, :logger=>#<IO:<STDOUT>>, :max_fast_inline=>10, :max_threads=>5, :min_threads=>0, :mode=>:http, :mutate_stdout_and_stderr_to_sync_on_write=>true, :out_of_band=>[], :persistent_timeout=>20, :queue_requests=>true, :rackup=>"config.ru", :raise_exception_on_sigterm=>true, :reaping_time=>1, :remote_address=>:socket, :silence_single_worker_warning=>false, :silence_fork_callback_warning=>false, :tag=>"src", :tcp_host=>"0.0.0.0", :tcp_port=>9292, :wait_for_less_busy_worker=>0.005, :worker_boot_timeout=>60, :worker_check_interval=>5, :worker_culling_strategy=>:youngest, :worker_shutdown_timeout=>30, :worker_timeout=>60, :workers=>0, :http_content_length_limit=>nil, :Verbose=>false, :Silent=>false, :server=>nil, :log_stdout=>true, :DoNotReverseLookup=>true, :config=>"config.ru", :daemonize=>false, :pid=>"/src/tmp/pids/server.pid", :caching=>nil, :restart_cmd=>"bin/rails server -p 3010 -b 0.0.0.0 --restart", :events=>#<Puma::Events:0x00007f3dbf9581a8 @hooks={:state=>[], :on_booted=>[]}>, :preload_app=>false}, @plugins=[]>>, "action_dispatch.parameter_filter"=>[:passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn, :otp_attempt, /^((?-mix:client_secret|authentication_token|access_token|refresh_token|code))$/, "admin_user.otp_secret", "admin_user.otp_secret"], "action_dispatch.redirect_filter"=>[], "action_dispatch.secret_key_base"=>"3a10922e648dea067129dfa449d166e7000c0491ab27d5d5c712da2d2f399d76df89fdca43d3004151375d0923f5dc0793ba601b5952a516cbd79abfd55b3368", "action_dispatch.show_exceptions"=>true, "action_dispatch.show_detailed_exceptions"=>true, "action_dispatch.log_rescued_responses"=>true, "action_dispatch.logger"=>#<ActiveSupport::Logger:0x00007f3dc4aa7770 @level=0, @progname=nil, @default_formatter=#<Logger::Formatter:0x00007f3dc4a48d10 @datetime_format=nil>, @formatter=#<ActiveSupport::Logger::SimpleFormatter:0x00007f3dc4aa74c8 @datetime_format=nil, @thread_key="activesupport_tagged_logging_tags:23680">, @logdev=#<Logger::LogDevice:0x00007f3dc4a48950 @shift_period_suffix="%Y%m%d", @shift_size=1048576, @shift_age=0, @filename="/src/log/development.log", @dev=#<File:/src/log/development.log>, @binmode=false, @mon_data=#<Monitor:0x00007f3dc4a4fe58>, @mon_data_owner_object_id=10240>>, "action_dispatch.backtrace_cleaner"=>#<Rails::BacktraceCleaner:0x00007f3dbf012e18 @silencers=[#<Proc:0x00007f3dbf012058 /usr/local/bundle/gems/activesupport-7.0.5/lib/active_support/backtrace_cleaner.rb:100>, #<Proc:0x00007f3dbf011fe0 /usr/local/bundle/gems/activesupport-7.0.5/lib/active_support/backtrace_cleaner.rb:104>, #<Proc:0x00007f3dbf011810 /usr/local/bundle/gems/railties-7.0.5/lib/rails/backtrace_cleaner.rb:24>], @filters=[#<Proc:0x00007f3dbf0120f8 /usr/local/bundle/gems/activesupport-7.0.5/lib/active_support/backtrace_cleaner.rb:96>, #<Proc:0x00007f3dbf011888 /usr/local/bundle/gems/railties-7.0.5/lib/rails/backtrace_cleaner.rb:14>, #<Proc:0x00007f3dbf011838 /usr/local/bundle/gems/railties-7.0.5/lib/rails/backtrace_cleaner.rb:17>], @root="/src/">, "action_dispatch.key_generator"=>#<ActiveSupport::CachingKeyGenerator:0x00007f3dbe65e7f0 @key_generator=#<ActiveSupport::KeyGenerator:0x00007f3dbe65e8b8 @secret="3a10922e648dea067129dfa449d166e7000c0491ab27d5d5c712da2d2f399d76df89fdca43d3004151375d0923f5dc0793ba601b5952a516cbd79abfd55b3368", @iterations=1000, @hash_digest_class=OpenSSL::Digest::SHA256>, @cache_keys=#<Concurrent::Map:0x00007f3dbe65e778 entries=5 default_proc=nil>>, "action_dispatch.http_auth_salt"=>"http authentication", "action_dispatch.signed_cookie_salt"=>"signed cookie", "action_dispatch.encrypted_cookie_salt"=>"encrypted cookie", "action_dispatch.encrypted_signed_cookie_salt"=>"signed encrypted cookie", 
2023-12-29T10:34:28.422343632Z 10:34:28 web.1    | 
2023-12-29T10:34:28.422346418Z 10:34:28 web.1    |       coffee :app
2023-12-29T10:34:28.422371563Z 10:34:28 web.1    |       ^^^^^^>}>, @response=#<Sinatra::Response:0x00007f3dbe51c0e0 @status=500, @headers={}, @writer=#<Method: Sinatra::Response(Rack::Response::Helpers)#append(chunk) /usr/local/bundle/gems/rack-2.2.7/lib/rack/response.rb:287>, @block=nil, @body=[], @buffered=true, @length=0>>:
2023-12-29T10:34:28.422443658Z 10:34:28 web.1    | 	/usr/local/bundle/gems/redis-browser-0.5.1/lib/redis-browser/web.rb:22:in `block in <class:CoffeeHandler>'
2023-12-29T10:34:28.422503984Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1706:in `call'
2023-12-29T10:34:28.422567811Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1706:in `block in compile!'
2023-12-29T10:34:28.422631422Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1019:in `block (3 levels) in route!'
2023-12-29T10:34:28.422692073Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1037:in `route_eval'
2023-12-29T10:34:28.422761626Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1019:in `block (2 levels) in route!'
2023-12-29T10:34:28.422827884Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1068:in `block in process_route'
2023-12-29T10:34:28.422892884Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1066:in `catch'
2023-12-29T10:34:28.422954265Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1066:in `process_route'
2023-12-29T10:34:28.423008599Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1017:in `block in route!'
2023-12-29T10:34:28.423075005Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1014:in `each'
2023-12-29T10:34:28.423490405Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1014:in `route!'
2023-12-29T10:34:28.423539814Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1138:in `block in dispatch!'
2023-12-29T10:34:28.423605133Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1109:in `catch'
2023-12-29T10:34:28.423669954Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1109:in `invoke'
2023-12-29T10:34:28.423735311Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1133:in `dispatch!'
2023-12-29T10:34:28.423788970Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:949:in `block in call!'
2023-12-29T10:34:28.423833317Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1109:in `catch'
2023-12-29T10:34:28.423896821Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1109:in `invoke'
2023-12-29T10:34:28.423930338Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:949:in `call!'
2023-12-29T10:34:28.423977365Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:938:in `call'
2023-12-29T10:34:28.424019246Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/xss_header.rb:20:in `call'
2023-12-29T10:34:28.424085185Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/path_traversal.rb:18:in `call'
2023-12-29T10:34:28.424133609Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/json_csrf.rb:28:in `call'
2023-12-29T10:34:28.424189209Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/base.rb:53:in `call'
2023-12-29T10:34:28.424234703Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/base.rb:53:in `call'
2023-12-29T10:34:28.424285067Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/frame_options.rb:33:in `call'
2023-12-29T10:34:28.424334338Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/null_logger.rb:11:in `call'
2023-12-29T10:34:28.424376197Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/head.rb:12:in `call'
2023-12-29T10:34:28.424417239Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/show_exceptions.rb:23:in `call'
2023-12-29T10:34:28.424468815Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:219:in `call'
2023-12-29T10:34:28.424513397Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:2018:in `call'
2023-12-29T10:34:28.424560434Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/xss_header.rb:20:in `call'
2023-12-29T10:34:28.424602355Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/path_traversal.rb:18:in `call'
2023-12-29T10:34:28.424649438Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/json_csrf.rb:28:in `call'
2023-12-29T10:34:28.424691681Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/base.rb:53:in `call'
2023-12-29T10:34:28.424749093Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/base.rb:53:in `call'
2023-12-29T10:34:28.424788976Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-protection-3.0.6/lib/rack/protection/frame_options.rb:33:in `call'
2023-12-29T10:34:28.424839566Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/null_logger.rb:11:in `call'
2023-12-29T10:34:28.424882768Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/head.rb:12:in `call'
2023-12-29T10:34:28.424932664Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/show_exceptions.rb:23:in `call'
2023-12-29T10:34:28.424974755Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:219:in `call'
2023-12-29T10:34:28.425027215Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:2018:in `call'
2023-12-29T10:34:28.425077209Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1576:in `block in call'
2023-12-29T10:34:28.425116091Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1792:in `synchronize'
2023-12-29T10:34:28.425157401Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sinatra-3.0.6/lib/sinatra/base.rb:1576:in `call'
2023-12-29T10:34:28.425202261Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
2023-12-29T10:34:28.425248364Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/routing/mapper.rb:48:in `serve'
2023-12-29T10:34:28.425297163Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/journey/router.rb:50:in `block in serve'
2023-12-29T10:34:28.425346557Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/journey/router.rb:32:in `each'
2023-12-29T10:34:28.425389674Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/journey/router.rb:32:in `serve'
2023-12-29T10:34:28.425524931Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/routing/route_set.rb:852:in `call'
2023-12-29T10:34:28.425567372Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/static.rb:23:in `call'
2023-12-29T10:34:28.425610093Z 10:34:28 web.1    | 	/usr/local/bundle/gems/omniauth-2.1.1/lib/omniauth/strategy.rb:202:in `call!'
2023-12-29T10:34:28.425655082Z 10:34:28 web.1    | 	/usr/local/bundle/gems/omniauth-2.1.1/lib/omniauth/strategy.rb:169:in `call'
2023-12-29T10:34:28.425706419Z 10:34:28 web.1    | 	/usr/local/bundle/gems/omniauth-2.1.1/lib/omniauth/strategy.rb:470:in `call_app!'
2023-12-29T10:34:28.425752296Z 10:34:28 web.1    | 	/usr/local/bundle/gems/omniauth-saml-2.0.0/lib/omniauth/strategies/saml.rb:86:in `other_phase'
2023-12-29T10:34:28.425798292Z 10:34:28 web.1    | 	/usr/local/bundle/gems/omniauth-2.1.1/lib/omniauth/strategy.rb:195:in `call!'
2023-12-29T10:34:28.425841382Z 10:34:28 web.1    | 	/usr/local/bundle/gems/omniauth-2.1.1/lib/omniauth/strategy.rb:169:in `call'
2023-12-29T10:34:28.425896046Z 10:34:28 web.1    | 	/usr/local/bundle/gems/omniauth-2.1.1/lib/omniauth/builder.rb:44:in `call'
2023-12-29T10:34:28.425955806Z 10:34:28 web.1    | 	/usr/local/bundle/gems/bullet-7.0.7/lib/bullet/rack.rb:17:in `call'
2023-12-29T10:34:28.426008969Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-attack-6.6.1/lib/rack/attack.rb:127:in `call'
2023-12-29T10:34:28.426066242Z 10:34:28 web.1    | 	/usr/local/bundle/gems/warden-1.2.9/lib/warden/manager.rb:36:in `block in call'
2023-12-29T10:34:28.426125446Z 10:34:28 web.1    | 	/usr/local/bundle/gems/warden-1.2.9/lib/warden/manager.rb:34:in `catch'
2023-12-29T10:34:28.426177786Z 10:34:28 web.1    | 	/usr/local/bundle/gems/warden-1.2.9/lib/warden/manager.rb:34:in `call'
2023-12-29T10:34:28.426245995Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/tempfile_reaper.rb:15:in `call'
2023-12-29T10:34:28.428364451Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/etag.rb:27:in `call'
2023-12-29T10:34:28.428396115Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/conditional_get.rb:27:in `call'
2023-12-29T10:34:28.428449714Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/head.rb:12:in `call'
2023-12-29T10:34:28.428504720Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
2023-12-29T10:34:28.428569442Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/http/content_security_policy.rb:36:in `call'
2023-12-29T10:34:28.428622217Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/session/abstract/id.rb:266:in `context'
2023-12-29T10:34:28.428683296Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/session/abstract/id.rb:260:in `call'
2023-12-29T10:34:28.428736528Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/cookies.rb:704:in `call'
2023-12-29T10:34:28.428798157Z 10:34:28 web.1    | 	/usr/local/bundle/gems/activerecord-7.0.5/lib/active_record/migration.rb:603:in `call'
2023-12-29T10:34:28.428850058Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
2023-12-29T10:34:28.428904751Z 10:34:28 web.1    | 	/usr/local/bundle/gems/activesupport-7.0.5/lib/active_support/callbacks.rb:99:in `run_callbacks'
2023-12-29T10:34:28.428958638Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
2023-12-29T10:34:28.429012115Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/executor.rb:14:in `call'
2023-12-29T10:34:28.429049229Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
2023-12-29T10:34:28.429105945Z 10:34:28 web.1    | 	/usr/local/bundle/gems/better_errors-2.10.0/lib/better_errors/middleware.rb:87:in `protected_app_call'
2023-12-29T10:34:28.429149015Z 10:34:28 web.1    | 	/usr/local/bundle/gems/better_errors-2.10.0/lib/better_errors/middleware.rb:82:in `better_errors_call'
2023-12-29T10:34:28.429198707Z 10:34:28 web.1    | 	/usr/local/bundle/gems/better_errors-2.10.0/lib/better_errors/middleware.rb:60:in `call'
2023-12-29T10:34:28.429246106Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
2023-12-29T10:34:28.429287760Z 10:34:28 web.1    | 	/usr/local/bundle/gems/web-console-4.2.0/lib/web_console/middleware.rb:132:in `call_app'
2023-12-29T10:34:28.429334895Z 10:34:28 web.1    | 	/usr/local/bundle/gems/web-console-4.2.0/lib/web_console/middleware.rb:19:in `block in call'
2023-12-29T10:34:28.429386291Z 10:34:28 web.1    | 	/usr/local/bundle/gems/web-console-4.2.0/lib/web_console/middleware.rb:17:in `catch'
2023-12-29T10:34:28.429427501Z 10:34:28 web.1    | 	/usr/local/bundle/gems/web-console-4.2.0/lib/web_console/middleware.rb:17:in `call'
2023-12-29T10:34:28.429468174Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'
2023-12-29T10:34:28.429523810Z 10:34:28 web.1    | 	/usr/local/bundle/gems/railties-7.0.5/lib/rails/rack/logger.rb:40:in `call_app'
2023-12-29T10:34:28.429565595Z 10:34:28 web.1    | 	/usr/local/bundle/gems/railties-7.0.5/lib/rails/rack/logger.rb:25:in `block in call'
2023-12-29T10:34:28.429619397Z 10:34:28 web.1    | 	/usr/local/bundle/gems/activesupport-7.0.5/lib/active_support/tagged_logging.rb:99:in `block in tagged'
2023-12-29T10:34:28.429656483Z 10:34:28 web.1    | 	/usr/local/bundle/gems/activesupport-7.0.5/lib/active_support/tagged_logging.rb:37:in `tagged'
2023-12-29T10:34:28.429701711Z 10:34:28 web.1    | 	/usr/local/bundle/gems/activesupport-7.0.5/lib/active_support/tagged_logging.rb:99:in `tagged'
2023-12-29T10:34:28.429739570Z 10:34:28 web.1    | 	/usr/local/bundle/gems/railties-7.0.5/lib/rails/rack/logger.rb:25:in `call'
2023-12-29T10:34:28.429789423Z 10:34:28 web.1    | 	/usr/local/bundle/gems/sprockets-rails-3.4.2/lib/sprockets/rails/quiet_assets.rb:13:in `call'
2023-12-29T10:34:28.429846256Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
2023-12-29T10:34:28.429875805Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/request_id.rb:26:in `call'
2023-12-29T10:34:28.429916413Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/method_override.rb:24:in `call'
2023-12-29T10:34:28.429966161Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/runtime.rb:22:in `call'
2023-12-29T10:34:28.430011179Z 10:34:28 web.1    | 	/usr/local/bundle/gems/activesupport-7.0.5/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
2023-12-29T10:34:28.430053789Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/server_timing.rb:61:in `block in call'
2023-12-29T10:34:28.430101953Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/server_timing.rb:26:in `collect_events'
2023-12-29T10:34:28.430143766Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/server_timing.rb:60:in `call'
2023-12-29T10:34:28.430189598Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/executor.rb:14:in `call'
2023-12-29T10:34:28.430464130Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/static.rb:23:in `call'
2023-12-29T10:34:28.430519475Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-2.2.7/lib/rack/sendfile.rb:110:in `call'
2023-12-29T10:34:28.430564403Z 10:34:28 web.1    | 	/usr/local/bundle/gems/actionpack-7.0.5/lib/action_dispatch/middleware/host_authorization.rb:137:in `call'
2023-12-29T10:34:28.430601572Z 10:34:28 web.1    | 	/usr/local/bundle/gems/rack-cors-2.0.1/lib/rack/cors.rb:102:in `call'
2023-12-29T10:34:28.430651900Z 10:34:28 web.1    | 	/usr/local/bundle/gems/railties-7.0.5/lib/rails/engine.rb:530:in `call'
2023-12-29T10:34:28.430693512Z 10:34:28 web.1    | 	/usr/local/bundle/gems/puma-6.4.0/lib/puma/configuration.rb:272:in `call'
2023-12-29T10:34:28.430737360Z 10:34:28 web.1    | 	/usr/local/bundle/gems/puma-6.4.0/lib/puma/request.rb:100:in `block in handle_request'
2023-12-29T10:34:28.430780406Z 10:34:28 web.1    | 	/usr/local/bundle/gems/puma-6.4.0/lib/puma/thread_pool.rb:378:in `with_force_shutdown'
2023-12-29T10:34:28.430836266Z 10:34:28 web.1    | 	/usr/local/bundle/gems/puma-6.4.0/lib/puma/request.rb:99:in `handle_request'
2023-12-29T10:34:28.430874705Z 10:34:28 web.1    | 	/usr/local/bundle/gems/puma-6.4.0/lib/puma/server.rb:443:in `process_client'
2023-12-29T10:34:28.430919294Z 10:34:28 web.1    | 	/usr/local/bundle/gems/puma-6.4.0/lib/puma/server.rb:241:in `block in run'
2023-12-29T10:34:28.430960313Z 10:34:28 web.1    | 	/usr/local/bundle/gems/puma-6.4.0/lib/puma/thread_pool.rb:155:in `block in spawn_thread'
2023-12-29T10:34:28.437869715Z 

Seems to still be an issue almost a year later