Page MenuHomePhabricator

Mailgun Adapter stopped working due to SSL cert failure
OpenPublic

Asked by ianw on Feb 12 2016, 2:30 PM.

Details

I'm having a problem where my phab install stopped sending mail. I haven't logged into it or updated it recently and it's throwing the error below.

A bit confused as I don't think anything changed on the machine, and I think mailgun's cert is probably ok.

I restarted a few times with sudo ./bin/phd restart to no avail.

Any ideas?

$ echo "testing" | sudo ./bin/mail send-test --to xxx
Reading message body from stdin...
[2016-02-12 06:23:24] EXCEPTION: (HTTPFutureCURLResponseStatus) [cURL/60] (https://api:key-7qmc40wmhdxbepsyumux8zasm-ywij54@api.mailgun.net/v2/zenysis.com/messages) <CURLE_SSL_CACERT> There was an error verifying the SSL Certificate Authority while negotiating the SSL connection. This usually indicates that you are using a self-signed certificate but have not added your CA to the CA bundle. See instructions in "libphutil/resources/ssl/README". at [<phutil>/src/future/http/HTTPSFuture.php:377]
  #0 HTTPSFuture::isReady() called at [<phutil>/src/future/Future.php:39]
  #1 Future::resolve() called at [<phutil>/src/future/http/BaseHTTPFuture.php:277]
  #2 BaseHTTPFuture::resolvex() called at [<phabricator>/src/applications/metamta/adapter/PhabricatorMailImplementationMailgunAdapter.php:121]
  #3 PhabricatorMailImplementationMailgunAdapter::send() called at [<phabricator>/src/applications/metamta/storage/PhabricatorMetaMTAMail.php:674]
  #4 PhabricatorMetaMTAMail::sendNow() called at [<phabricator>/src/applications/metamta/PhabricatorMetaMTAWorker.php:26]
  #5 PhabricatorMetaMTAWorker::doWork() called at [<phabricator>/src/infrastructure/daemon/workers/PhabricatorWorker.php:110]
  #6 PhabricatorWorker::scheduleTask(string, integer, integer) called at [<phabricator>/src/applications/metamta/storage/PhabricatorMetaMTAMail.php:345]
  #7 PhabricatorMetaMTAMail::save() called at [<phabricator>/src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php:155]
  #8 PhabricatorMailManagementSendTestWorkflow::execute(PhutilArgumentParser) called at [<phutil>/src/parser/argument/PhutilArgumentParser.php:394]
  #9 PhutilArgumentParser::parseWorkflowsFull(array) called at [<phutil>/src/parser/argument/PhutilArgumentParser.php:290]
  #10 PhutilArgumentParser::parseWorkflows(array) called at [<phabricator>/scripts/mail/manage_mail.php:21]
PHP Fatal error:  Uncaught exception 'Exception' with message 'Process exited with an open transaction! The transaction will be implicitly rolled back. Calls to openTransaction() must always be paired with a call to saveTransaction() or killTransaction().' in /opt/bitnami/apps/phabricator/libphutil/src/aphront/storage/connection/AphrontDatabaseTransactionState.php:69
Stack trace:
#0 [internal function]: AphrontDatabaseTransactionState->__destruct()
#1 {main}
  thrown in /opt/bitnami/apps/phabricator/libphutil/src/aphront/storage/connection/AphrontDatabaseTransactionState.php on line 69

Fatal error: Uncaught exception 'Exception' with message 'Process exited with an open transaction! The transaction will be implicitly rolled back. Calls to openTransaction() must always be paired with a call to saveTransaction() or killTransaction().' in /opt/bitnami/apps/phabricator/libphutil/src/aphront/storage/connection/AphrontDatabaseTransactionState.php:69
Stack trace:
#0 [internal function]: AphrontDatabaseTransactionState->__destruct()
#1 {main}
  thrown in /opt/bitnami/apps/phabricator/libphutil/src/aphront/storage/connection/AphrontDatabaseTransactionState.php on line 69

Answers

ianw
Updated 3,906 Days Ago

Ok, I fixed this by downloading a new certs list from https://curl.haxx.se/ca/cacert.pem.

Then I found out where my php.ini file was by running php --ini. In the php.ini file ('Loaded Configuration File') I went to the curl section and found the cainfo key, which is a path to a ca file.

Then, I replaced that ca file with the new list of certs above.

New Answer