diff --git a/lib/submissions/generate_audit_trail.rb b/lib/submissions/generate_audit_trail.rb index 2f02d5e4..1e3e2dd1 100644 --- a/lib/submissions/generate_audit_trail.rb +++ b/lib/submissions/generate_audit_trail.rb @@ -291,7 +291,16 @@ module Submissions ), if field['type'].in?(%w[image signature initials stamp]) attachment = submitter.attachments.find { |a| a.uuid == value } - image = Vips::Image.new_from_buffer(attachment.download, '').autorot + + image = + begin + Vips::Image.new_from_buffer(attachment.download, '').autorot + rescue Vips::Error + next unless attachment.content_type.starts_with?('image/') + next if attachment.byte_size.zero? + + raise + end scale = [600.0 / image.width, 600.0 / image.height].min diff --git a/lib/submissions/generate_result_attachments.rb b/lib/submissions/generate_result_attachments.rb index f1ef7fb7..c667512b 100644 --- a/lib/submissions/generate_result_attachments.rb +++ b/lib/submissions/generate_result_attachments.rb @@ -19,7 +19,6 @@ module Submissions MAX_PAGE_ROTATE = 20 A4_SIZE = [595, 842].freeze - SUPPORTED_IMAGE_TYPES = ['image/png', 'image/jpeg'].freeze TESTING_FOOTER = 'Testing Document - NOT LEGALLY BINDING' @@ -273,7 +272,15 @@ module Submissions attachments_data_cache[attachment.uuid] ||= attachment.download - image = Vips::Image.new_from_buffer(attachments_data_cache[attachment.uuid], '').autorot + image = + begin + Vips::Image.new_from_buffer(attachments_data_cache[attachment.uuid], '').autorot + rescue Vips::Error + next unless attachment.content_type.starts_with?('image/') + next if attachment.byte_size.zero? + + raise + end scale = [(area['w'] * width) / image.width, (area['h'] * height) / image.height].min