sprockets icon indicating copy to clipboard operation
sprockets copied to clipboard

sprocket-context cause test to fails only on CircleCI

Open nonusae opened this issue 7 years ago • 8 comments

Sprocket cause test to randomly fails on CircleCI

Expected behavior

I expected the test to pass grancefully

Actual behavior

My test randomly fails time to time on CircleCI (Sometime it pass but I have to rebuild for 4-5 time). And most of time it is occur in the one of request spec(same error but occur in different test file) The same test(Rspec) suite alway pass on local machine but randomly fails on Circleci and this is full trance:

Failure/Error: options[:sprockets][:context]
     
     ActionView::Template::Error:
       undefined method `[]' for nil:NilClass
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/sass_processor.rb:299:in `sprockets_context'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/sass_processor.rb:145:in `asset_path'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/sass_processor.rb:158:in `asset_url'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/sass_processor.rb:176:in `image_url'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/script/tree/funcall.rb:155:in `block in _perform'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:108:in `block in with_function'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:135:in `with_frame'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:108:in `with_function'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/script/tree/funcall.rb:153:in `_perform'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/script/tree/node.rb:50:in `perform'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/script/tree/list_literal.rb:75:in `block in _perform'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/script/tree/list_literal.rb:75:in `map'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/script/tree/list_literal.rb:75:in `_perform'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/script/tree/node.rb:50:in `perform'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:402:in `visit_prop'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/base.rb:36:in `visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:162:in `block in visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:79:in `block in with_base'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:135:in `with_frame'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:79:in `with_base'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:162:in `visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:444:in `block (2 levels) in visit_rule'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:444:in `map'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:444:in `block in visit_rule'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:183:in `with_environment'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:442:in `visit_rule'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/base.rb:36:in `visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:162:in `block in visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:79:in `block in with_base'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:135:in `with_frame'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/stack.rb:79:in `with_base'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:162:in `visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/base.rb:52:in `block in visit_children'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/base.rb:52:in `map'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/base.rb:52:in `visit_children'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:171:in `block in visit_children'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:183:in `with_environment'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:170:in `visit_children'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/base.rb:36:in `block in visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:190:in `visit_root'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/base.rb:36:in `visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:161:in `visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/visitors/perform.rb:10:in `visit'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/root_node.rb:36:in `css_tree'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/tree/root_node.rb:29:in `render_with_sourcemap'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/engine.rb:389:in `_render_with_sourcemap'
     # /usr/local/bundle/gems/sass-3.5.3/lib/sass/engine.rb:307:in `render_with_sourcemap'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/sass_compressor.rb:53:in `call'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/sass_compressor.rb:30:in `call'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/processor_utils.rb:84:in `call_processor'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/processor_utils.rb:65:in `reverse_each'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/processor_utils.rb:65:in `call_processors'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/loader.rb:144:in `load_from_unloaded'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/loader.rb:59:in `block in load'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/loader.rb:318:in `fetch_asset_from_dependency_cache'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/loader.rb:43:in `load'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/cached_environment.rb:44:in `load'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/base.rb:69:in `find_asset'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/base.rb:76:in `find_all_linked_assets'
     # /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `block in synchronize'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `synchronize'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `synchronize'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/safe_task_executor.rb:19:in `execute'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/promise.rb:531:in `block in realize'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
     # /usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
     # ------------------
     # --- Caused by: ---
     # NoMethodError:
     #   undefined method `[]' for nil:NilClass
     #   /usr/local/bundle/gems/sprockets-4.0.0.beta5/lib/sprockets/sass_processor.rb:299:in `sprockets_context'

System configuration

  • sprockets-4.0.0.beta5
  • Docker
  • ruby:2.4.2-alpine3.6 (with docker)
  • Circleci
  • Rspec

nonusae avatar Feb 06 '18 07:02 nonusae

Same here sprockets-4.0.0.beta7

merqlove avatar May 17 '18 09:05 merqlove

Make sure you are using beta 7.

Can you give me an example app that reproduces the problem? Does the issue ever happen outside of CircleCI?

schneems avatar May 17 '18 13:05 schneems

@schneems Hi, yeah, it's beta7. For now i have large app (large AA stack + little frontend UI). Rail 5.1.6, Ruby 2.5.1 Maybe i can debug it from CLI? To detect the problem source.

merqlove avatar May 17 '18 15:05 merqlove

@schneems Yeah, it is CircleCI only.

merqlove avatar May 17 '18 15:05 merqlove

Failures:

  1) LayoutHelperTest rendered page contains both base and application layouts
     Failure/Error: options[:sprockets][:context]
     
     ActionView::Template::Error:
       undefined method `[]' for nil:NilClass
     
     
     
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_processor.rb:299:in `sprockets_context'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_processor.rb:145:in `asset_path'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_processor.rb:158:in `asset_url'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_processor.rb:230:in `font_url'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/script/tree/funcall.rb:155:in `block in _perform'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:108:in `block in with_function'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:135:in `with_frame'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:108:in `with_function'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/script/tree/funcall.rb:153:in `_perform'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/script/tree/node.rb:50:in `perform'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:402:in `visit_prop'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/base.rb:36:in `visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:162:in `block in visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:79:in `block in with_base'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:135:in `with_frame'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:79:in `with_base'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:162:in `visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:517:in `block (2 levels) in visit_directive'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:517:in `map'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:517:in `block in visit_directive'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:183:in `with_environment'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:516:in `visit_directive'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/base.rb:36:in `visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:162:in `block in visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:79:in `block in with_base'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:135:in `with_frame'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/stack.rb:79:in `with_base'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:162:in `visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/base.rb:52:in `block in visit_children'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/base.rb:52:in `map'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/base.rb:52:in `visit_children'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:171:in `block in visit_children'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:183:in `with_environment'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:170:in `visit_children'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/base.rb:36:in `block in visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:190:in `visit_root'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/base.rb:36:in `visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:161:in `visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/visitors/perform.rb:10:in `visit'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/root_node.rb:36:in `css_tree'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/tree/root_node.rb:29:in `render_with_sourcemap'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/engine.rb:389:in `_render_with_sourcemap'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sass-3.5.6/lib/sass/engine.rb:307:in `render_with_sourcemap'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_compressor.rb:53:in `call'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_compressor.rb:30:in `call'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/processor_utils.rb:84:in `call_processor'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/processor_utils.rb:65:in `reverse_each'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/processor_utils.rb:65:in `call_processors'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/loader.rb:145:in `load_from_unloaded'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/loader.rb:59:in `block in load'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/loader.rb:329:in `fetch_asset_from_dependency_cache'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/loader.rb:43:in `load'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/cached_environment.rb:44:in `load'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/base.rb:81:in `find_asset'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/base.rb:88:in `find_all_linked_assets'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `block in synchronize'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `synchronize'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `synchronize'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/safe_task_executor.rb:19:in `execute'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/promise.rb:531:in `block in realize'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
     # /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
     # 
     #   Showing full backtrace because every line was filtered out.
     #   See docs for RSpec::Configuration#backtrace_exclusion_patterns and
     #   RSpec::Configuration#backtrace_inclusion_patterns for more information.
     # ------------------
     # --- Caused by: ---
     # NoMethodError:
     #   undefined method `[]' for nil:NilClass
     #   /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_processor.rb:299:in `sprockets_context'

merqlove avatar May 17 '18 15:05 merqlove

It's going from:

"open-sans-v15-cyrillic-ext_latin-regular.eot"
"open-sans-v15-cyrillic-ext_latin-regular.eot?#iefix"
"open-sans-v15-cyrillic-ext_latin-regular.woff2"
"open-sans-v15-cyrillic-ext_latin-regular.woff"
"open-sans-v15-cyrillic-ext_latin-regular.ttf"
"open-sans-v15-cyrillic-ext_latin-regular.svg#OpenSans"
"intro_bg.jpg"
rake aborted!
NoMethodError: undefined method `[]' for nil:NilClass
/home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_processor.rb:299:in `sprockets_context'
/home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_processor.rb:145:in `asset_path'
/home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta7/lib/sprockets/sass_processor.rb:158:in `asset_url'
/home/circleci/repo/lib/gem_ext/sprockets_debug.rb:16:in `font_url'

merqlove avatar May 18 '18 05:05 merqlove

Same error in beta8 and during heroku deploy:

remote: rake aborted! remote: NoMethodError: undefined method []' for nil:NilClass remote: /tmp/build_d7f7eddb626853cdf6680b071a9f98c7/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta8/lib/sprockets/sass_processor.rb:299:in sprockets_context' remote: /tmp/build_d7f7eddb626853cdf6680b071a9f98c7/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta8/lib/sprockets/sass_processor.rb:145:in asset_path' remote: /tmp/build_d7f7eddb626853cdf6680b071a9f98c7/vendor/bundle/ruby/2.5.0/gems/sprockets-4.0.0.beta8/lib/sprockets/sass_processor.rb:221:in font_path' remote: /tmp/build_d7f7eddb626853cdf6680b071a9f98c7/vendor/bundle/ruby/2.5.0/gems/sass-3.5.1/lib/sass/script/tree/funcall.rb:155:in `block in _perform'

josh-m-sharpe avatar Sep 15 '18 03:09 josh-m-sharpe

I think for now we need catch this error manually and rerun precompile.

My solution:

#!/usr/bin/env bash

message=$(rake assets:precompile 2>&1)

if [[ ${message} == *"undefined method \`[]' for nil:NilClass"* ]]; then
  ./precompile.sh
else
  echo ${message}
fi

exit 0

merqlove avatar Nov 24 '18 10:11 merqlove