diff --git a/lib/passwordstate.rb b/lib/passwordstate.rb
index b0ce6d91b64b0a4499eba79e93a7eb514afbbc2c..49a57d10e6f7472a8b84798788ce5c32c01a3e32 100644
--- a/lib/passwordstate.rb
+++ b/lib/passwordstate.rb
@@ -1,10 +1,10 @@
 require 'logging'
+require 'passwordstate/version'
 require 'passwordstate/client'
 require 'passwordstate/errors'
 require 'passwordstate/resource'
 require 'passwordstate/resource_list'
 require 'passwordstate/util'
-require 'passwordstate/version'
 
 module Passwordstate
   def self.debug!
diff --git a/lib/passwordstate/client.rb b/lib/passwordstate/client.rb
index 9444ecf505c24f77d72d3563a9b19cc32571669f..c95f665dbd76edb571373fe540fc9a4d0da8f55f 100644
--- a/lib/passwordstate/client.rb
+++ b/lib/passwordstate/client.rb
@@ -108,10 +108,11 @@ module Passwordstate
       if data
         return data if res_obj.is_a? Net::HTTPSuccess
 
-        data = data&.first
-        data = data.fetch('errors', []) if data.is_a? Hash
+        parsed = data&.first
+        parsed = data.fetch('errors', []) if data.is_a?(Hash) && data.key?('errors')
+        parsed = [data]
 
-        raise Passwordstate::HTTPError.new_by_code(res_obj.code, req_obj, res_obj, data || [])
+        raise Passwordstate::HTTPError.new_by_code(res_obj.code, req_obj, res_obj, parsed || [])
       else
         return res_obj.body if res_obj.is_a?(Net::HTTPSuccess) && options.fetch(:allow_html, true)