diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb
index b4047a41be08c97cdd3f8b13891dfea26206ef5e..a0ee2202114e76c07cbdd9fc52d6643cf67ae6eb 100644
--- a/app/controllers/accounts_controller.rb
+++ b/app/controllers/accounts_controller.rb
@@ -129,7 +129,7 @@ class AccountsController < ApplicationController
   end
 
   def redirect_to_new(error_message)
-    flash[:error] = error_message
+    flash_error error_message
     session[:account_email] = params[:account][:email]
     redirect_to new_account_path
     false
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index c671e378347d4424bcd87844049ce6ebd42ce16b..3f96da72e3ed7b9d496ed1735009f243f6609c65 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -126,7 +126,30 @@ class ApplicationController < ActionController::Base
 
   def put_api_messages_as_flash_error
     if messages = Base.connection.http_response.headers[:x_messages]
-      flash[:error] = messages
+      messages.split(' // ').each do |msg|
+        flash_error(msg)
+      end
+    end
+  end
+  
+  def flash_error(msg)
+    ensure_flash_is_array('error')
+    flash['error'] << msg
+  end
+
+  def flash_notice(msg)
+    ensure_flash_is_array('notice')
+    flash['notice'] << msg
+  end
+
+  private
+
+  def ensure_flash_is_array(name)
+    case flash[name]
+    when nil
+      flash[name] = []
+    when String
+      flash[name] = [flash[name]]
     end
   end
 end
diff --git a/app/controllers/keys_controller.rb b/app/controllers/keys_controller.rb
index 3595356b1d81503acfc9ab3c62487a82bb34a539..b6d03d353fa848f1f1d39f7ce3125b6218de25e1 100644
--- a/app/controllers/keys_controller.rb
+++ b/app/controllers/keys_controller.rb
@@ -29,7 +29,7 @@ class KeysController < ApplicationController
   def create
     input = select_key_material
     if input.blank?
-      flash[:alert] = 'No input found'
+      flash_error 'No input found'
       return redirect_to action: 'index'
     end
 
diff --git a/app/controllers/subscriptions_controller.rb b/app/controllers/subscriptions_controller.rb
index 06f429334a0aa3adaa6b76a08d496c8bfb6813fe..f0d4b8dfc3523d0162d2ef7a35a950000d114e17 100644
--- a/app/controllers/subscriptions_controller.rb
+++ b/app/controllers/subscriptions_controller.rb
@@ -60,7 +60,7 @@ class SubscriptionsController < ApplicationController
 
   def destroy
     if @subscription.is_last_admin?
-      flash[:error] = t(".cant_unsubscribe_last_admin")
+      flash_error t(".cant_unsubscribe_last_admin")
       redirect_to subscription_path(@subscription)
       return
     end