> So either something does not work as expected there, or I'm simply > looking at the wrong code and should be looking somewhere else.
If this is the correct code, then why is it behaving differently when its is run to serve a soap request, as compared to running it directly, for the same email message? This is at least happening for multipart/signed messages, and likely also for other MIME messages. For testing I am using the initial report mail from #853037. The BTS' SOAP interface delivers the message body as the entire undecoded body of the primary email message, as if the BTS did not understand multipart messages at all. See `reportbug -N 853037` for how the email body is then displayed by reportbug. However, when I run this same message through Debbugs::MIME's `parse`, it correctly identifies the text/plain subpart and decodes and returns it. I've tested this by downloading the message mbox: wget -O msg https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853037;mbox=yes;msg=5 and then using the following perl script to call the `parse` function: ------- m.pl ------ #! /usr/bin/perl use strict; use warnings; use Data::Dumper; use Debbugs::MIME qw(parse); sub make_list { return map {(ref($_) eq 'ARRAY')?@{$_}:$_} @_; } local $/; my $lines = <>; my $message = parse $lines; my ($header, $body) = map {join("\n", make_list($_))} @{$message}{qw(header body)}; print Dumper({header => $header, body => $body,}); ------------- Command line: perl -I debbugs/lib/ m.pl < msg Here the result shows a nicely identified and extracted message text. Looking now at the code starting here: https://salsa.debian.org/debbugs-team/debbugs/-/blob/master/lib/Debbugs/MIME.pm#L130 Somehow, when the code is run on the BTS server, the MIME::Parser seems to fail and the `parse` function code is falling back to the legacy pre-MIME code. Why?