Email failed to send - please verify your email settings šŸ“§ / Email service is currently unavailable - please try again

Was anyone able to resolve the Email failed to send - please verify your email settings error? I have followed the ghost email setup guide and used my private API key on Mailgun only to keep running into this issue. If anyone could offer any guidance, that would be much appreciated.

2 Likes

Did you share your error logs with Mailgun guys? They might be able to help

I had the same issue, but I have moved to Ghost Pro for the time being.

I have updated Ghost to the latest version 3.35.3.

The newsletter still doesnā€™t work.

The error message has changed: |Email service is currently unavailable - please try again|

So how I should fix it?

IMPORTANT UPDATE

Hey, Guys,

After moving heaven and earth on why maligun isnā€™t working, finally maligun informs me that they have restriction to max 100 emails per hour. Here is the screenshot of their email CleanShot 2020-10-04 at 20.44.02 Ā· CleanShot Cloud

So there was nothing wrong in the settings.

I do hope you donā€™t have similar issues. I have written to them on why they should remove the restrictions on my account.

Praying that the same is done asap.

2 Likes

Hi, thanks for this information.

Personally I donā€™t think thatā€™s my case.

I have never tried the newsletter before and I donā€™t have 100 registered members.

The single user trial email newsletter works fine.

I have never changed my configurations.

Initially I got the error ā€œplease check your configurationsā€, and after the update ā€œthe email service is not availableā€

At least some feedback from the staff would be interesting.

1 Like

I also donā€™t have 100 members and I have no troubles sending emails. I cannot send transactional emails for signing in and signing upā€¦I just get the message ā€œThere was an error sending the email, please try againā€.

1 Like

I am getting the same error.

Error Log File:

    {"name":"Log","hostname":"ghost-ubuntu-s-1vcpu-1gb-fra1-01","pid":1223,"level":50,"req":{"meta":{"requestId":"039e7b2b-7b9a-4930-b9af-b6726da55ee0","userId":"1"},"url":"/email_preview/posts/5f78e04a5abbb6641544e095/","method":"POST","originalUrl":"/ghost/api/v3/admin/email_preview/posts/5f78e04a5abbb6641544e095/","params":{},"headers":{"x-forwarded-for":"178.233.17.38","x-forwarded-proto":"https","x-real-ip":"censored","host":"censored","connection":"close","content-length":"35","accept":"application/json, text/javascript, */*; q=0.01","x-requested-with":"XMLHttpRequest","x-ghost-version":"3.35","app-pragma":"no-cache","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36","content-type":"application/json; charset=UTF-8","origin":"https://censored","sec-fetch-site":"same-origin","sec-fetch-mode":"cors","sec-fetch-dest":"empty","referer":"https://censored/ghost/","accept-encoding":"gzip, deflate, br","accept-language":"tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7,de;q=0.6,vi;q=0.5,th;q=0.4,nl;q=0.3","cookie":"**REDACTED**"},"query":{}},"res":{"_headers":{"x-powered-by":"Express","cache-control":"no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0","access-control-allow-origin":"https://censored","vary":"Origin, Accept-Encoding","content-type":"application/json; charset=utf-8","content-length":"267","etag":"W/\"10b-h600eyTqStHjNUAD25TfzdPyWoo\""},"statusCode":500,"responseTime":"554ms"},"err":{"id":"e1e97f70-07a0-11eb-a938-6b95e7d04462","domain":"https://censored","code":"BULK_EMAIL_SEND_FAILED","name":"EmailError","statusCode":500,"level":"normal","message":"The server has encountered an error.","context":"\"The email service was unable to send an email batch.\"","stack":"EmailError: The server has encountered an error.
        at EmailError.GhostError (/var/www/ghost/versions/3.35.3/node_modules/@tryghost/errors/lib/errors.js:10:26)
        at new EmailError (/var/www/ghost/versions/3.35.3/node_modules/@tryghost/errors/lib/errors.js:34:20)
        at /var/www/ghost/versions/3.35.3/core/server/services/bulk-email/index.js:236:30
        at tryCatcher (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/util.js:16:23)
        at Promise._settlePromiseFromHandler (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/promise.js:547:31)
        at Promise._settlePromise (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/promise.js:604:18)
        at Promise._settlePromise0 (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/promise.js:649:10)
        at Promise._settlePromises (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/promise.js:725:18)
        at _drainQueueStep (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/async.js:93:12)
        at _drainQueue (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/async.js:86:9)
        at Async._drainQueues (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/async.js:102:5)
        at Immediate.Async.drainQueues [as _onImmediate] (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/async.js:15:14)    at processImmediate (internal/timers.js:456:21)
        at process.topLevelDomainCallback (domain.js:137:15)
    	
    	Error: Forbidden
        at IncomingMessage.<anonymous> (/var/www/ghost/versions/3.35.3/node_modules/mailgun-js/lib/request.js:327:17)
        at IncomingMessage.emit (events.js:327:22)
        at IncomingMessage.EventEmitter.emit (domain.js:482:12)
        at endReadableNT (_stream_readable.js:1221:12)
        at processTicksAndRejections (internal/process/task_queues.js:84:21)"},"msg":"The server has encountered an error.","time":"2020-10-06T06:55:13.143Z","v":0}
  • Version 3.35.5

The problem persists.

Email service is currently unavailable - please try again

1 Like

I replied to a similar topic and added a link to the discussionā€¦itā€™s been going on for too longā€¦

I have the same problem described. I have my page hosted by DigitalOcean. I have already checked my Mailgun configuration and Ghost connection and the problem is definitely Ghost.

2 Likes

Any news ?

The error is showing the problem. The mailgun library is not able to successfully connect to mailgun. Check your api keys, network configuration, and ensure your mailgun account is fully configured so that you can send to external email accounts without restrictions.

Anyone else seeing the error in the admin UI will need to check their logs, there should be an indication for what you need to check.

@Kevin
In the log file https ___ DOMAIN_it_production.error.log I have only one error that repeats itself dozens of times:

{
  "name": "Log",
  "hostname": "DOMAIN",
  "pid": 20944,
  "level": 50,
  "err": {
    "id": "3df639d0-0ead-11eb-acf7-e5b9e60f0ed3",
    "domain": "https://DOMAIN.it",
    "code": null,
    "name": "BadRequestError",
    "statusCode": 400,
    "level": "normal",
    "message": "Error parsing filter",
    "stack": "BadRequestError: Error parsing filter\n    at new BadRequestError (/var/www/ghost/versions/3.35.5/node_modules/ghost-ignition/lib/errors/index.js:113:23)\n    at Child.applyDefaultAndCustomFilters (/var/www/ghost/versions/3.35.5/core/server/models/plugins/filter.js:104:23)\n    at Function.getFilteredCollection (/var/www/ghost/versions/3.35.5/core/server/models/base/index.js:850:28)\n    at Function.findPage (/var/www/ghost/versions/3.35.5/core/server/models/base/index.js:926:37)\n    at Object.query (/var/www/ghost/versions/3.35.5/core/server/api/canary/posts-public.js:33:32)\n    at Object.query (/var/www/ghost/versions/3.35.5/core/server/api/shared/pipeline.js:156:24)\n    at Promise.resolve.then.then.then.then (/var/www/ghost/versions/3.35.5/core/server/api/shared/pipeline.js:243:35)\n    at tryCatcher (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:547:31)\n    at Promise._settlePromise (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:604:18)\n    at Promise._settlePromise0 (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:649:10)\n    at Promise._settlePromises (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:729:18)\n    at _drainQueueStep (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/async.js:93:12)\n    at _drainQueue (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/async.js:86:9)\n    at Async._drainQueues (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/async.js:102:5)\n    at Immediate.Async.drainQueues [as _onImmediate] (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/async.js:15:14)\n    at runCallback (timers.js:705:18)\n    at tryOnImmediate (timers.js:676:5)\n    at processImmediate (timers.js:658:5)\n    at process.topLevelDomainCallback (domain.js:126:23)\n\nError: Query Error: unrecognized text \"r\" in filter at char 7\n(tags:r+id:-5d7c1f8fc4b856\n------^\n    at Object.lexer.parseError (/var/www/ghost/versions/3.35.5/node_modules/@nexes/nql-lang/dist/parser.js:711:11)\n    at Object.next (/var/www/ghost/versions/3.35.5/node_modules/@nexes/nql-lang/dist/parser.js:594:25)\n    at Object.lex (/var/www/ghost/versions/3.35.5/node_modules/@nexes/nql-lang/dist/parser.js:604:22)\n    at lex (/var/www/ghost/versions/3.35.5/node_modules/@nexes/nql-lang/dist/parser.js:215:27)\n    at Parser.parse (/var/www/ghost/versions/3.35.5/node_modules/@nexes/nql-lang/dist/parser.js:228:26)\n    at Object.exports.parse (/var/www/ghost/versions/3.35.5/node_modules/@nexes/nql-lang/lib/nql.js:18:44)\n    at Object.api.parse (/var/www/ghost/versions/3.35.5/node_modules/@nexes/nql/lib/nql.js:15:31)\n    at Object.api.querySQL.qb [as querySQL] (/var/www/ghost/versions/3.35.5/node_modules/@nexes/nql/lib/nql.js:49:44)\n    at Builder.query (/var/www/ghost/versions/3.35.5/core/server/models/plugins/filter.js:101:24)\n    at Object.query (/var/www/ghost/versions/3.35.5/node_modules/bookshelf/lib/helpers.js:57:14)\n    at Child.query (/var/www/ghost/versions/3.35.5/node_modules/bookshelf/lib/model.js:1256:22)\n    at Child.applyDefaultAndCustomFilters (/var/www/ghost/versions/3.35.5/core/server/models/plugins/filter.js:94:22)\n    at Function.getFilteredCollection (/var/www/ghost/versions/3.35.5/core/server/models/base/index.js:850:28)\n    at Function.findPage (/var/www/ghost/versions/3.35.5/core/server/models/base/index.js:926:37)\n    at Object.query (/var/www/ghost/versions/3.35.5/core/server/api/canary/posts-public.js:33:32)\n    at Object.query (/var/www/ghost/versions/3.35.5/core/server/api/shared/pipeline.js:156:24)\n    at Promise.resolve.then.then.then.then (/var/www/ghost/versions/3.35.5/core/server/api/shared/pipeline.js:243:35)\n    at tryCatcher (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:547:31)\n    at Promise._settlePromise (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:604:18)\n    at Promise._settlePromise0 (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:649:10)\n    at Promise._settlePromises (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:729:18)"
  },
  "msg": "Error parsing filter",
  "time": "2020-10-15T06:11:19.664Z",
  "v": 0
}

I think itā€™s not referring to the email.

I have no other errors there.

I tried to send the newsletter 2-3 more times now, nothing is written in the error log.

Email service is currently unavailable - please try again

Correct, thatā€™s unrelated.

In the log file https ___ DOMAIN_it_production.error.log

Try looking in the https ___ DOMAIN_it_production.log log instead.

It was a bit complicated to search in this file itā€™s 4GB atm.

i found these results:

{
  "name": "Log",
  "hostname": "domain",
  "pid": 4729,
  "level": 40,
  "err": {
    "id": "b3423550-f4da-11ea-a00e-17584a06f421",
    "domain": "https://domain.it",
    "code": null,
    "name": "EmailError",
    "statusCode": 500,
    "level": "normal",
    "message": "The server has encountered an error.",
    "context": "\"The email service was unable to send an email batch.\"",
    "stack": "EmailError: The server has encountered an error.\n    at EmailError.GhostError (/var/www/ghost/versions/3.32.2/node_modules/@tryghost/errors/lib/errors.js:10:26)\n    at new EmailError (/var/www/ghost/versions/3.32.2/node_modules/@tryghost/errors/lib/errors.js:34:20)\n    at mailgunInstance.messages.send (/var/www/ghost/versions/3.32.2/core/server/services/bulk-email/index.js:132:42)\n    at Request.callback (/var/www/ghost/versions/3.32.2/node_modules/async/dist/async.js:4617:26)\n    at IncomingMessage.res.on (/var/www/ghost/versions/3.32.2/node_modules/mailgun-js/lib/request.js:331:19)\n    at IncomingMessage.emit (events.js:203:15)\n    at IncomingMessage.EventEmitter.emit (domain.js:448:20)\n    at endReadableNT (_stream_readable.js:1145:12)\n    at process._tickCallback (internal/process/next_tick.js:63:19)\n\nError: Too Many Recipients\n    at IncomingMessage.res.on (/var/www/ghost/versions/3.32.2/node_modules/mailgun-js/lib/request.js:327:17)\n    at IncomingMessage.emit (events.js:203:15)\n    at IncomingMessage.EventEmitter.emit (domain.js:448:20)\n    at endReadableNT (_stream_readable.js:1145:12)\n    at process._tickCallback (internal/process/next_tick.js:63:19)"
  },
  "msg": "The server has encountered an error.",
  "time": "2020-09-12T09:31:13.577Z",
  "v": 0
}


{
  "name": "Log",
  "hostname": "domain",
  "pid": 29037,
  "level": 40,
  "err": {
    "id": "a73891b0-055a-11eb-a0bf-f3533a0f7040",
    "domain": "https://domain.it",
    "code": "BULK_EMAIL_SEND_FAILED",
    "name": "EmailError",
    "statusCode": 500,
    "level": "normal",
    "message": "The server has encountered an error.",
    "context": "\"The email service was unable to send an email batch.\"",
    "stack": "EmailError: The server has encountered an error.\n    at EmailError.GhostError (/var/www/ghost/versions/3.35.3/node_modules/@tryghost/errors/lib/errors.js:10:26)\n    at new EmailError (/var/www/ghost/versions/3.35.3/node_modules/@tryghost/errors/lib/errors.js:34:20)\n    at mailgunProvider.send.then.catch (/var/www/ghost/versions/3.35.3/core/server/services/bulk-email/index.js:236:30)\n    at tryCatcher (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/promise.js:547:31)\n    at Promise._settlePromise (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/promise.js:604:18)\n    at Promise._settlePromise0 (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/promise.js:649:10)\n    at Promise._settlePromises (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/promise.js:725:18)\n    at _drainQueueStep (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/async.js:93:12)\n    at _drainQueue (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/async.js:86:9)\n    at Async._drainQueues (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/async.js:102:5)\n    at Immediate.Async.drainQueues [as _onImmediate] (/var/www/ghost/versions/3.35.3/node_modules/bluebird/js/release/async.js:15:14)\n    at runCallback (timers.js:705:18)\n    at tryOnImmediate (timers.js:676:5)\n    at processImmediate (timers.js:658:5)\n    at process.topLevelDomainCallback (domain.js:126:23)\n\nError: 'from' parameter is not a valid address. please check documentation\n    at IncomingMessage.res.on (/var/www/ghost/versions/3.35.3/node_modules/mailgun-js/lib/request.js:327:17)\n    at IncomingMessage.emit (events.js:203:15)\n    at IncomingMessage.EventEmitter.emit (domain.js:448:20)\n    at endReadableNT (_stream_readable.js:1145:12)\n    at process._tickCallback (internal/process/next_tick.js:63:19)"
  },
  "msg": "The server has encountered an error.",
  "time": "2020-10-03T09:27:27.568Z",
  "v": 0
}

the forbidden keyword did not produce any results in the file

the first error dates back to version 3.32, I guess it has already been fixed

This error is about todayā€™s attempt:

{
  "name": "Log",
  "hostname": "domain",
  "pid": 20944,
  "level": 40,
  "err": {
    "id": "dab03180-0ebd-11eb-acf7-e5b9e60f0ed3",
    "domain": "https://domain.it",
    "code": "BULK_EMAIL_SEND_FAILED",
    "name": "EmailError",
    "statusCode": 500,
    "level": "normal",
    "message": "The server has encountered an error.",
    "context": "\"The email service was unable to send an email batch.\"",
    "stack": "EmailError: The server has encountered an error.\n    at EmailError.GhostError (/var/www/ghost/versions/3.35.5/node_modules/@tryghost/errors/lib/errors.js:10:26)\n    at new EmailError (/var/www/ghost/versions/3.35.5/node_modules/@tryghost/errors/lib/errors.js:34:20)\n    at mailgunProvider.send.then.catch (/var/www/ghost/versions/3.35.5/core/server/services/bulk-email/index.js:236:30)\n    at tryCatcher (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:547:31)\n    at Promise._settlePromise (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:604:18)\n    at Promise._settlePromise0 (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:649:10)\n    at Promise._settlePromises (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/promise.js:725:18)\n    at _drainQueueStep (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/async.js:93:12)\n    at _drainQueue (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/async.js:86:9)\n    at Async._drainQueues (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/async.js:102:5)\n    at Immediate.Async.drainQueues [as _onImmediate] (/var/www/ghost/versions/3.35.5/node_modules/bluebird/js/release/async.js:15:14)\n    at runCallback (timers.js:705:18)\n    at tryOnImmediate (timers.js:676:5)\n    at processImmediate (timers.js:658:5)\n    at process.topLevelDomainCallback (domain.js:126:23)\n\nError: Too Many Recipients\n    at IncomingMessage.res.on (/var/www/ghost/versions/3.35.5/node_modules/mailgun-js/lib/request.js:327:17)\n    at IncomingMessage.emit (events.js:203:15)\n    at IncomingMessage.EventEmitter.emit (domain.js:448:20)\n    at endReadableNT (_stream_readable.js:1145:12)\n    at process._tickCallback (internal/process/next_tick.js:63:19)"
  },
  "msg": "The server has encountered an error.",
  "time": "2020-10-15T08:10:14.555Z",
  "v": 0
}

@giacomosilli again the error is Ghost being able to communicate with mailgun. Troubleshooting advice is the same as before - Check your api keys, network configuration, and ensure your mailgun account is fully configured so that you can send to external email accounts without restrictions.

You can see from the first post how I configured the json, I think it is correct, do you confirm?

My Mailgun account seems to me fully configured.

MX, TXT, CNAME records are also configured.

From the Ghost admin panel I tried to enter all the Mailgun API Key, private, public, webhook signing key

From the Mailgun panel in ā€œOverviewā€ I read:

Processed
35
34 Delivered
97.14%

I believe they are the single newsletter email tests, so Ghost is communicating correctly with Mailgun.

Also in the log that I posted I read ā€œnError: Too Many Recipientsā€, are we sure itā€™s a configuration problem?

That sounds like your Mailgun account is restricted, Iā€™d suggest contacting their support.

We can look at hoisting that error message up through the error stack so itā€™s not lost in the logs.

2 Likes

A post was split to a new topic: Unable to change email settings