diff --git a/src/applications/metamta/storage/PhabricatorMetaMTAMail.php b/src/applications/metamta/storage/PhabricatorMetaMTAMail.php
--- a/src/applications/metamta/storage/PhabricatorMetaMTAMail.php
+++ b/src/applications/metamta/storage/PhabricatorMetaMTAMail.php
@@ -10,7 +10,7 @@
   const RETRY_DELAY   = 5;
 
   protected $actorPHID;
-  protected $parameters;
+  protected $parameters = array();
   protected $status;
   protected $message;
   protected $relatedPHID;
@@ -69,6 +69,13 @@
   }
 
   protected function getParam($param, $default = null) {
+    // Some old mail was saved without parameters because no parameters were
+    // set or encoding failed. Recover in these cases so we can perform
+    // mail migrations, see T9251.
+    if (!is_array($this->parameters)) {
+      $this->parameters = array();
+    }
+
     return idx($this->parameters, $param, $default);
   }