parser = $parser ?: new JsonParser(); } public function __invoke(ResponseInterface $response, ?CommandInterface $command = null) { $data = $this->genericHandler($response); // Merge in error data from the JSON body if ($json = $data['parsed']) { $data = \array_replace($json, $data); } // Correct error type from services like Amazon Glacier if (!empty($data['type'])) { $data['type'] = \strtolower($data['type']); } // Retrieve error message directly $data['message'] = $data['parsed']['message'] ?? $data['parsed']['Message'] ?? null; $this->populateShape($data, $response, $command); return $data; } }