Shopify / theme-check

The Ultimate Shopify Theme Linter
Other
337 stars 95 forks source link

/usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_node.rb:145:in `parseable_markup': undefined method `[]' for nil:NilClass (NoMethodError) #528

Closed asmerkin closed 2 years ago

asmerkin commented 2 years ago
theme-check --version
1.9.0
Checking ./theme ...
/usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_node.rb:145:in `parseable_markup': undefined method `[]' for nil:NilClass (NoMethodError)
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_node.rb:97:in `markup'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:51:in `rescue in call_check_method'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:29:in `call_check_method'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:11:in `block in call'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:10:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:10:in `call'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:32:in `call_checks'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:23:in `visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `block in visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `block in visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `block in visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:14:in `visit_liquid_file'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:54:in `block (2 levels) in analyze_theme'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:51:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:51:in `each_with_index'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:51:in `block in analyze_theme'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check.rb:68:in `with_liquid_c_disabled'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:50:in `analyze_theme'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/cli.rb:192:in `check'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/cli.rb:123:in `run!'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/cli.rb:127:in `run'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/cli.rb:149:in `parse_and_run'
    from /usr/local/bundle/gems/theme-check-1.9.0/exe/theme-check:6:in `<top (required)>'
    from /usr/local/bundle/bin/theme-check:25:in `load'
    from /usr/local/bundle/bin/theme-check:25:in `<main>'
/usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_node.rb:145:in `parseable_markup': undefined method `[]' for nil:NilClass (NoMethodError)
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_node.rb:97:in `markup'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/offense.rb:43:in `initialize'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/check.rb:95:in `new'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/check.rb:95:in `add_offense'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks/img_lazy_loading.rb:16:in `on_img'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:42:in `block in call_check_method'
    from /usr/local/lib/ruby/3.0.0/timeout.rb:97:in `block in timeout'
    from /usr/local/lib/ruby/3.0.0/timeout.rb:35:in `block in catch'
    from /usr/local/lib/ruby/3.0.0/timeout.rb:35:in `catch'
    from /usr/local/lib/ruby/3.0.0/timeout.rb:35:in `catch'
    from /usr/local/lib/ruby/3.0.0/timeout.rb:112:in `timeout'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:41:in `call_check_method'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:11:in `block in call'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:10:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/checks.rb:10:in `call'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:32:in `call_checks'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:23:in `visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `block in visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `block in visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `block in visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:24:in `visit'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/html_visitor.rb:14:in `visit_liquid_file'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:54:in `block (2 levels) in analyze_theme'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:51:in `each'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:51:in `each_with_index'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:51:in `block in analyze_theme'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check.rb:68:in `with_liquid_c_disabled'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/analyzer.rb:50:in `analyze_theme'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/cli.rb:192:in `check'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/cli.rb:123:in `run!'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/cli.rb:127:in `run'
    from /usr/local/bundle/gems/theme-check-1.9.0/lib/theme_check/cli.rb:149:in `parse_and_run'
    from /usr/local/bundle/gems/theme-check-1.9.0/exe/theme-check:6:in `<top (required)>'
    from /usr/local/bundle/bin/theme-check:25:in `load'
    from /usr/local/bundle/bin/theme-check:25:in `<main>'
charlespwd commented 2 years ago

Thanks for the report. Any chance I could get a hold of the theme? You can zip + send to me at cp.clermont@shopify.com.

I could add a null check but I'd like to know what triggered it. There's something we assume somewhere that turns out not to be true.

asmerkin commented 2 years ago

Sorry .. NDA. I can't share it.

El mar, 7 dic 2021 a las 15:30, Charles-Philippe Clermont (< @.***>) escribió:

Thanks for the report. Any chance I could get a hold of the theme? You can zip + send to me at @.***

I could add a null check but I'd like to know what triggered it. There's something we assume somewhere that turns out not to be true.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Shopify/theme-check/issues/528#issuecomment-988169881, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADXJIL72X2B62HLLQBCMZTUPZHDVANCNFSM5JR2RJTA .

asmerkin commented 2 years ago

@charlespwd maybe you want me to run some other tests?

charlespwd commented 2 years ago

There has to be a file in there that cause theme check to trip up. Unfortunately it seems like it's happening outside of our Bug loop, so we don't know which one.

What I'd do if I had the theme on hand (it's kind of a chore, hence why I was suggesting to do it for you):

charlespwd commented 2 years ago

Unfortunately can't reproduce on my end.

Please upgrade to theme-check v1.9.2 which will add a bit more info in the error.

We should at least get more info (which file, what line number, etc.) next time it happens. Please do report back the output of the error. If you have this, more partners might also get it.