instructure/canvas-lms · error
Unsupported submission type for VeriCite integration: #
Error message
Unsupported submission type for VeriCite integration: #{submission.submission_type} What it means
VeriCite plagiarism provider's submitPaper handles attachment-based and online_text_entry submissions; any other submission_type falls through to the else and raises, since VeriCite has no payload mapping for it (mirrors the Turnitin limitation in lib/turnitin.rb).
Solutions
- Restrict VeriCite-enabled assignments to file upload and text entry submission types
- Filter unsupported submissions before enqueuing them to VeriCite
- Handle the error in the plagiarism submission job and mark those submissions as skipped
- Extend the branch to serialize additional types if VeriCite's API accepts them
Example fix
// before
submission.submit_at(vericite) # raises for online_quiz
// after
SUPPORTED = %w[online_upload online_text_entry].freeze
if SUPPORTED.include?(submission.submission_type)
submission.submit_at(vericite)
else
Rails.logger.warn("vericite skip: #{submission.submission_type}")
end Defensive patterns
Strategy: validation
Validate before calling
VERICITE_TYPES = %w[online_upload online_text_entry].freeze raise 'unsupported for vericite' unless VERICITE_TYPES.include?(submission.submission_type)
Type guard
def vericite_submittable?(submission) = %w[online_upload online_text_entry].include?(submission.submission_type)
Try / catch
begin
submission.submit_at(vericite_tool)
rescue RuntimeError => e
raise unless e.message.start_with?('Unsupported submission type for VeriCite')
Rails.logger.warn("skipped: #{e.message}")
end Prevention
- Limit VeriCite-enabled assignments to supported submission types
- Skip/flag unsupported types in the plagiarism job
- Keep type lists in sync with the provider branch logic
When it happens
Trigger: Calling submitPaper (via submit_at/plagiarism framework) with a submission of type online_quiz, online_url_entry, media_recording, or similar that is neither attachment-bearing nor 'online_text_entry'.
Common situations: VeriCite enabled on assignments accepting quiz or media submission types; plagiarism job queues processing heterogeneous assignments; orgs migrating from Turnitin with the same restricted type expectations.
Related errors
- Unsupported submission type for turnitin integration: #
- #
- Live events subscriptions service is not configured
- set_type of '# ' not supported. Supported types: #
- Unsupported message type: #
AI-assisted analysis of instructure/canvas-lms@1c9f0bb801 (2026-09-15).
Data as JSON: /api/errors/29822aca8ac4db37.
Report an issue: GitHub.
Appendix: source
Thrown at lib/vericite.rb:153
paper_ext = a.extension
paper_type = a.content_type
if paper_ext.nil?
paper_ext = ""
end
paper_size = 100 # File.size(
responses[a.asset_string] = sendRequest(:submit_paper, { pid: paper_id, ptl: paper_title, pext: paper_ext, ptype: paper_type, psize: paper_size, pdata: a.open }.merge!(opts))
end
elsif submission.submission_type == "online_text_entry" && (asset_string.nil? || submission.asset_string == asset_string)
paper_id = Digest::SHA1.hexdigest submission.plaintext_body
paper_ext = "html"
paper_title = "InlineSubmission"
plain_text = "<html>#{submission.plaintext_body}</html>"
paper_type = "text/html"
paper_size = plain_text.bytesize
responses[submission.asset_string] = sendRequest(:submit_paper, { pid: paper_id, ptl: paper_title, pext: paper_ext, ptype: paper_type, psize: paper_size, pdata: plain_text }.merge!(opts))
else
raise "Unsupported submission type for VeriCite integration: #{submission.submission_type}"
end
responses.transform_values! do |res|
is_response_success?(res) ? { object_id: res[:returned_object_id] } : response_error_hash(res)
end
responses
end
def generateReport(submission, asset_string)
user = submission.user
assignment = submission.assignment
course = assignment.context
object_id = submission.vericite_data_hash.dig(asset_string, :object_id)
res = nil
res = sendRequest(:get_scores, oid: object_id, utp: "2", user:, course:, assignment:) if object_id
data = {}
if resView on GitHub (pinned to 1c9f0bb801)