- return {
- errors => [
- {
- message => "HTTP transport returned $resp->{status}: $resp->{content}",
- x_transport_response => $resp,
- },
- ],
- };
+ my $data = eval { $self->json->decode($resp->{content}) };
+ if ($@) {
+ my $content = $resp->{content} // 'No content';
+ my $reason = $resp->{reason} // '';
+ $data = {
+ errors => [
+ {
+ message => "HTTP transport returned $resp->{status} ($reason): $content",
+ },
+ ],
+ };
+ }
+
+ return ($data, 'graphql', $resp);