mysociety / alaveteli

Provide a Freedom of Information request system for your jurisdiction
https://alaveteli.org
Other
389 stars 196 forks source link

[ERROR] FAILED ActsAsXapian.update_index job xxxx undefined method `body_as_text' for nil:NilClass #4463

Open lizconlan opened 6 years ago

lizconlan commented 6 years ago

We think this occurs (at least on 0.23.2.0) If an authority replies to a request with attachments but leaves the email body blank...

FAILED ActsAsXapian.update_index job 280338 undefined method `body_as_text' for nil:NilClass model InfoRequestEvent id 20975
[FILTERED]/alaveteli/app/models/incoming_message.rb:407:in `_convert_part_body_to_text'
[FILTERED]/alaveteli/app/models/incoming_message.rb:387:in `get_main_body_text_internal'
[FILTERED]/alaveteli/app/models/incoming_message.rb:347:in `_cache_main_body_text'
[FILTERED]/alaveteli/app/models/incoming_message.rb:373:in `get_main_body_text_folded'
[FILTERED]/alaveteli/app/models/incoming_message.rb:590:in `get_body_for_quoting'
[FILTERED]/alaveteli/app/models/incoming_message.rb:642:in `get_text_for_indexing_full'
[FILTERED]/alaveteli/app/models/info_request_event.rb:217:in `search_text_main'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:840:in `single_xapian_value'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:833:in `xapian_value'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:954:in `block in xapian_index'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:951:in `each'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:951:in `xapian_index'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:668:in `run_job'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:648:in `block (2 levels) in update_index'
[FILTERED]/ruby/1.9.1/gems/activerecord-3.2.21/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction'
[FILTERED]/ruby/1.9.1/gems/activerecord-3.2.21/lib/active_record/transactions.rb:208:in `transaction'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:637:in `block in update_index'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:634:in `each'
[FILTERED]/alaveteli/lib/acts_as_xapian/acts_as_xapian.rb:634:in `update_index'
[FILTERED]/alaveteli/lib/acts_as_xapian/tasks/xapian.rake:12:in `block (2 levels) in <top (required)>'
lizconlan commented 6 years ago

The workaround for this - to prevent the indexing task from getting stuck on the error instead of moving on - appears to be the same as for unreadable attachments: https://github.com/mysociety/alaveteli/wiki/Manually-adding-responses