Retry limit reached - mailgun

Haven't received emails on a dev server for a couple days -
Retry limit reached. Dropped: alerts# → "": 498 No MX for .
The MX records are set properly for the domain which is active on mailgun. Does anyone know what's going on.

Related

Mailgun: Domain is not allowed to send large batches yet

I am running a mailing list with Mailman which uses Postfix to send the emails through Mailgun. I'm on Mailgun's (paid) Flex plan with a verified (non-sandbox) account.
The mailing list has about 30 members and the traffic is low. Still, when an email is sent, the log (/var/log/mail.log) contains entries with Domain ... is not allowed to send large batches yet.
postfix/smtp[33682]: 019053E815: to=<...>, relay=smtp.mailgun.org[44.231.238.210]:587,
delay=1181, delays=1179/0.02/2/0.13, dsn=4.0.0, status=deferred (host smtp.mailgun.org[44.231.238.210]
said: 421 Domain ... is not allowed to send large batches yet (in reply to DATA command))
I was unable to find any information about this error message. What's a good workaround for this issue – should the outgoing emails be throttled or should I request an increase of the batch sizes from Mailgun?
The solution was to contact Mailgun support. They raised the limits on my account and after that, the emails got delivered – the mail.log file now has status=sent (250 Great success) entries.

Why Application request limit reached #4 is received?

171 calls were initated during last day, it is less then 600 call per 600 sec. How is it I get Application request limit reached message? If this an app restriction, then why other users does not receive same message? I checked other SO answers, they does not help. Both Application Rate Limit and User Rate Limit seems fine. Facebook Help Community is sucks.

GCP IoT stops processing messages

We have multiple devices (rpi2) connected to IoT core with our self-engineered "firmware" that uses Python and Paho-mqtt client. Our steps to reproduce error:
Log into Google Cloud
Set device to DEBUG logging level.
Attempt to send command using Google's IoT website (e.g., remote firmware update or just anything other)
Observe immediate error responses (two cases below) from the Google control panel.
Observe the logs on the device; no record of contact from GCP.
And the two cases are:
Message couldn’t be sent because the device is not connected
This is true and not true, because we are seeing that our device gets disconnected from time to time without particular reason. We do have JWT token refreshing mechanism and it's working fine, but sometimes GCP just... disconnects device!
The command couldn't be sent because the device is not subscribed to the MQTT wildcard topic.
This is not true, all devices are subscribed (but if they are not connected then maybe they are not subscribed...)
Here are the things that we already checked:
1. The JWT are refreshed 10 minutes faster than one hour (the expiry is set to 3600, but we refresh every 3000 seconds)
2. Explicitly set MQTTv311 as the protocol to speak in Python Paho-mqtt client
3. Implemented an on_log() handler.
4. Implemented PINGREQ as IoT core documentation stated.
5. Checked devices' internet connection and it's just fine.
Here are some logs:
From device:
[2020-04-05 21:20:58,624] root - INFO - Trying to set date and time to: 2020-04-05 21:20:58.624278
[2020-04-05 21:20:59,239] root - INFO - Starting collecting device state
[2020-04-05 21:20:59,256] root - INFO - Connecting to the cloud
[2020-04-05 21:20:59,262] root - INFO - Device client_id is 'projects/XXX/locations/us-central1/registries/iot-registry/devices/XXX-000003'
[2020-04-05 21:20:59,549] root - INFO - Starting pusher service
[2020-04-05 21:21:00,050] root - INFO - on_connect: Connection Accepted.
[2020-04-05 21:21:00,051] root - INFO - Subscribing to /devices/XXX-000003/commands/#
[2020-04-05 21:22:04,827] root - INFO - Since 2020-04-05T21:20:59.549934, pusher sent: 469 messages, received confirmation for 469 messages, recorded 0 errors
[2020-04-05 21:23:07,426] root - INFO - Since 2020-04-05T21:22:04.828064, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:24:09,815] root - INFO - Since 2020-04-05T21:23:07.427720, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:25:12,036] root - INFO - Since 2020-04-05T21:24:09.816221, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:26:14,099] root - INFO - Since 2020-04-05T21:25:12.037507, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:27:16,052] root - INFO - Since 2020-04-05T21:26:14.100430, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:28:17,807] root - INFO - Since 2020-04-05T21:27:16.053253, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:29:19,416] root - INFO - Since 2020-04-05T21:28:17.808075, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
From GCP:
GCP logs

How to delete email message with libcurl and POP3?

Is it possible to do? I know about custom request; so I send custom request with text "DELE", and set message ID that I want to delete. As a result, curl_easy_perform hangs until timeout appears. On web forums people write advice to send also "QUIT" command after "DELE"; but how can I send "QUIT" command if libcurl hangs?
libcurl debug output follows:
* Connected to pop-mail.outlook.com (157.55.1.215) port 995 (#2)
* SSL connection using DES-CBC3-SHA
* Server certificate:
* subject: C=US; ST=Washington; L=Redmond; O=Microsoft Corporation; CN=*.
hotmail.com
* start date: 2013-04-24 20:35:09 GMT
* expire date: 2016-04-24 20:35:09 GMT
* issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Organization Validation
CA - G2
* SSL certificate verify result: unable to get local issuer certificate (
20), continuing anyway.
< +OK DUB0-POP132 POP3 server ready
> CAPA
< -ERR unrecognized command
> USER ************#hotmail.com
< +OK password required
> PASS ******************
< +OK mailbox has 1 messages
> DELE 1
< +OK message deleted
* Operation too slow. Less than 1000 bytes/sec transferred the last 10 seconds
> QUIT
* Operation too slow. Less than 1000 bytes/sec transferred the last 10 seconds
* Closing connection 2
So, the message is removed, but libcurl hangs until speed limit forces it to disconnect, which is bad idea. How to force it to stop after deleting of message and don't wait until timeout comes?
If you look at the libcurl documentation, CURLOPT_CUSTOMREQUEST says:
POP3
When you tell libcurl to use a custom request it will behave like a LIST or RETR command was sent where it expects data to be returned by the server. As such CURLOPT_NOBODY should be used when specifying commands such as DELE and NOOP for example.
That is why libcurl is hanging - it is waiting for more data that the server is not actually sending. So add CURLOPT_NOBODY to stop that waiting.
There's a recently added example code on the libcurl site showing exactly how to do this:
pop3-dele.c

Apache server response timeout

So I am trying to use a web service on my Apache server and when I send a request to the service. I should be receiving about 9,000 items packed in xml format with multiple properties for each.
The problem I believe is when make this request, it takes so long to process the response that the server times out the request and I never receive anything. when making a request for about 1000 items it takes about 7 seconds. I believe there is a limit to 60 seconds somewhere in the server as 9000 if linear would be about 63 seconds which is just past this 1 minute limit.
Anyone got an idea on this problem?
You can try bumping up the connectionTimeout parameter to a higher number. Its set to 60 seconds by default.