wicked_pdf: Problem upgrading to 1.2.0

After upgrading from 1.1.0 to 1.2.0 all requests to the rails app fail. The system seems to go into an infinite loop when trying to render the page. The log shows FATAL Rails : SystemStackError (stack level too deep): wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:30:in render' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:43:in render_with_wicked_pdf’ … (this goes on and on)… wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:30:in render' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:43:in render_with_wicked_pdf’ wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:30:in render' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:43:in render_with_wicked_pdf’ wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:30:in render' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:43:in render_with_wicked_pdf’ actionpack (4.2.11.1) lib/action_controller/metal/implicit_render.rb:10:in default_render' actionpack (4.2.11.1) lib/action_controller/metal/implicit_render.rb:5:in send_action’

System configuration: Ubuntu 18.04 Rails 4.2.11.1 Ruby 2.4.5

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 12
  • Comments: 27 (2 by maintainers)

Most upvoted comments

1.2.2 fixed the issue for me

@unixmonkey

We have used 1.1.0 for a long period before the update without a hitch.

@unixmonkey

Thanks for the update. I too still get the stack overflow with version 1.2.1.

SystemStackError:
  stack level too deep
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
...
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
...
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
# ./app/controllers/xxxxxxx_controller.rb:12:in `create'     # =>  render status: :ok, json: { status: :ok }

Confirmed.

Extra info, ancestor chain:

[HomeController
ApplicationController
WickedPdf::PdfHelper
ActionController::Base
Remotipart::RenderOverrides
ERB::Util
Remotipart::RequestHelper
Turbolinks::XHRHeaders
Turbolinks::Cookies
Turbolinks::XDomainBlocker
Turbolinks::Redirection
ActionController::Serialization
....
ActiveSupport::Configurable
Object
PP::ObjectMixin
ActiveSupport::Dependencies::Loadable
V8::Conversion::Object
JSON::Ext::Generator::GeneratorMethods::Object
Kernel
BasicObject]

method(:render).super_method

calls to Remotipart RenderOverrides

#<Method: ActionController::Metal(Remotipart::RenderOverrides)#render(render_with_remotipart)>

Thanks for reporting the issue everyone. I’ve pushed up a fix in #813 and released a new version 1.2.1 that should hopefully fix this for most or all of you (although I’m not quite sure about you @P9GIT). Please install and test the update and report back.

If you can provide more info about what other gems might be interfering by stepping into the render pdf: call with pry-nav or byebug, it would be very much appreciated.

@unixmonkey Yes, for me works, too. Thank you!

I’ve just released a new version of wicked_pdf, version 1.2.2, that aims to sidestep the issue with remotipart via #821.

It may not help with other gems that work similarly, but I wanted to get a fix out there before working on the core issue, which will likely require a release with some deprecation warnings, and a major version bump.

We will be working to provide a better way to hook into Rails’ rendering system for 2.0, but for now, please upgrade, and let me know if you continue to have trouble or not!

@unixmonkey amazing, the master branch fixed the issue for me!

@stewgloves can you please try installing from the master branch? It has a lot of fixes I’m planning on releasing soon.

This version is out-of-date and this issue has been addressed in newer versions. Closing this, but feel free to open a new issue if you are still having this issue on the latest version.

Hi @unixmonkey

UPDATE: moved to separate issue #845

I fell over a new instance of “stack level too deep” even with the new 1.2.2 version. This time it does not to involve the “remotipart” gem but just the “WickedPDF” gem.

Funny thing is that this exception only happens in rspec tests of endpoints which performs HTML rendering and not PDF. So when requesting the same endpoint in normal (non-testing) mode it works without problems.

It seems like an edge case. With the new version of “WickedPDF” coming up, this might not be worth looking into to fix, but for maybe giving helpful info on the root problem?

Reverting to “WickedPDF” version 1.1.0 makes the exception go away.

Example of failing endpoint:

def export_data
    respond_to do |format|
      format.html {
        # export data and check errors
        return false if common_export === false
        render layout: 'msp_export', template: 'msp/export'
      }
      format.any { head :unsupported_media_type }
    end
  end

The above “render” command is the line 258 referred to in the backtrace below.

Simplified Rspec code:

it 'should render html with correct data' do
      expect(subject).to receive(:render)
        .with(hash_including(layout: 'msp_export', template: 'msp/export'))
        .and_call_original
      get :export_data, params: {
        :target => 'computers',
        :clients => [16],
        :fields => ['client_name', 'name']
      }, :format => :html
      expect(subject.instance_variable_get(:@data)).to eq([{:name => 'LaptopZ1', :is_online => false, :client_name => client.name}])
    end

Exception:

… (this goes on and on)…

    # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # ./app/controllers/msp/clients_controller.rb:258:in `block (2 levels) in export_data'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/mime_responds.rb:201:in `respond_to'
     # ./app/controllers/msp/clients_controller.rb:247:in `export_data'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:186:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/rendering.rb:30:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activesupport-5.1.7/lib/active_support/callbacks.rb:131:in `run_callbacks'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:19:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/rescue.rb:20:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `block in instrument'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activesupport-5.1.7/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `instrument'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activerecord-5.1.7/lib/active_record/railties/controller_runtime.rb:22:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:124:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionview-5.1.7/lib/action_view/rendering.rb:30:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal.rb:189:in `dispatch'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/test_case.rb:513:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/template_assertions.rb:61:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/devise-4.6.2/lib/devise/test/controller_helpers.rb:35:in `block in process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/devise-4.6.2/lib/devise/test/controller_helpers.rb:102:in `catch'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/devise-4.6.2/lib/devise/test/controller_helpers.rb:102:in `_catch_warden'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/devise-4.6.2/lib/devise/test/controller_helpers.rb:35:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/test_case.rb:392:in `get'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/integration.rb:13:in `block (2 levels) in <module:Integration>'
     # ./spec/controllers/msp/clients_controller_spec.rb:429:in `block (3 levels) in <top (required)>'

Can confirm I’ve been experiencing the same issue. 1.1.0 works fine, 1.2.0 causes a stack overflow.

I can also confirm the issue(s) in 1.2.1, my stack: ruby: 2.5.3 rails: 5.2.2.1

And we have been using this gem for quiet some time. We faced issues when updating our stack due to security fixes in rails and devise and some other gems. And were hit by this, locking to 1.1.1 (version we were using prior) fixes the issue. Didn’t dig deep but it didn’t even let our server load home page with:

fatal (machine stack overflow in critical region):



ActionView::Template::Error: can't modify frozen fatal
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:323:in `handle_render_error'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:162:in `rescue in render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:156:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:44:in `block in instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:43:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/action_view.rb:32:in `render_with_layout'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:52:in `render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:16:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/renderer.rb:44:in `render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/renderer.rb:25:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/helpers/rendering_helper.rb:33:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/haml-5.0.4/lib/haml/helpers/action_view_mods.rb:14:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:46:in `block in render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger_silence.rb:21:in `silence'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger.rb:65:in `block (3 levels) in broadcast'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger_silence.rb:21:in `silence'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger.rb:63:in `block (2 levels) in broadcast'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:46:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb:15:in `___sers_dev__rvm_gems_ruby_______gems_actionpack_________lib_action_dispatch_middleware_templates_rescues_diagnostics_html_erb__2088889649381863463_70350793849260'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:159:in `block in render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:170:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:354:in `instrument_render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:157:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:44:in `block in instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:43:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/action_view.rb:29:in `block in render_with_layout'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:44:in `block in instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:43:in `instrument'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/action_view.rb:28:in `render_with_layout'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:52:in `render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:16:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/renderer.rb:44:in `render_template'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/renderer.rb:25:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/helpers/rendering_helper.rb:33:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/haml-5.0.4/lib/haml/helpers/action_view_mods.rb:14:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:46:in `block in render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger_silence.rb:21:in `silence'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger.rb:65:in `block (3 levels) in broadcast'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger_silence.rb:21:in `silence'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger.rb:63:in `block (2 levels) in broadcast'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:46:in `render'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:102:in `render_for_browser_request'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:87:in `render_exception'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rollbar-2.19.3/lib/rollbar/middleware/rails/show_exceptions.rb:18:in `render_exception_with_rollbar'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/web-console-2.3.0/lib/web_console/extensions.rb:3:in `render_exception_with_web_console'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:71:in `rescue in call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rollbar-2.19.3/lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/web-console-2.3.0/lib/web_console/middleware.rb:28:in `block in call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:in `catch'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/railties-5.2.2.1/lib/rails/rack/logger.rb:38:in `call_app'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/railties-5.2.2.1/lib/rails/rack/logger.rb:28:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/action_dispatch/request_id.rb:12:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-2.0.6/lib/rack/method_override.rb:22:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-2.0.6/lib/rack/runtime.rb:22:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-livereload-0.3.17/lib/rack/livereload.rb:23:in `_call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-livereload-0.3.17/lib/rack/livereload.rb:14:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/static.rb:127:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-2.0.6/lib/rack/sendfile.rb:111:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/railties-5.2.2.1/lib/rails/engine.rb:524:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/configuration.rb:227:in `call'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/server.rb:660:in `handle_request'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/server.rb:474:in `process_client'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/server.rb:334:in `block in run'
	from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/thread_pool.rb:135:in `block in spawn_thread'

And our tests were failing with stack level too deep issue:

# /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/implicit_render.rb:35:in `default_render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `block in send_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `tap'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/abstract_controller/base.rb:194:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:132:in `run_callbacks'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/rescue.rb:22:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `instrument'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activerecord-5.2.2.1/lib/active_record/railties/controller_runtime.rb:24:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/abstract_controller/base.rb:134:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/rendering.rb:32:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal.rb:191:in `dispatch'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/test_case.rb:516:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/template_assertions.rb:61:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/devise-4.6.1/lib/devise/test/controller_helpers.rb:35:in `block in process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/devise-4.6.1/lib/devise/test/controller_helpers.rb:102:in `catch'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/devise-4.6.1/lib/devise/test/controller_helpers.rb:102:in `_catch_warden'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/devise-4.6.1/lib/devise/test/controller_helpers.rb:35:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/test_case.rb:395:in `get'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/integration.rb:13:in `block (2 levels) in <module:Integration>'
     # ./spec/controllers/xyz_controller.rb:18:in `block (2 levels) in <top (required)>'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/rspec-prof-0.0.7/lib/rspec-prof.rb:76:in `block (2 levels) in <top (required)>'

Let me know if i can provide any more information to help solve this issue.

@unixmonkey can you take a look at PR #812 as I think it could solve this issue and cleanup things a bit.

@unixmonkey

Thanks for the update. Unfortunately I still get the stack overflow with version 1.2.1. I got a stack trace which resembles what @etal2 reports.

... goes on and on ...
- remotipart (1.4.2) lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `call'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:30:in `render'
 - remotipart (1.4.2) lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `call'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:30:in `render'
 - remotipart (1.4.2) lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `call'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:30:in `render'
 - responders (2.4.1) lib/action_controller/responder.rb:238:in `default_render'
 - responders (2.4.1) lib/action_controller/responder.rb:170:in `to_html'
 - responders (2.4.1) lib/action_controller/responder.rb:163:in `respond'
 - responders (2.4.1) lib/action_controller/responder.rb:156:in `call'
 - responders (2.4.1) lib/action_controller/respond_with.rb:211:in `respond_with'
 - devise (4.6.1) app/controllers/devise/sessions_controller.rb:14:in `new'
 - actionpack (5.1.6.2) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'

This happens if I just HTTP GET our login page. See attached txt file for full stack trace. stack_trace.txt

Seems gem “remotipart” has something to do with this.