Quectel M10 - CMS Error: 604

Dear ladies and gentlemen from Quectel,

Sadly i have a problem with my Quectel GSM module M10. For a project i send and receive SMS for controlling various sensors and actors. Every 20 seconds i check the M10 via AT command about new and unread SMS.

The AT command looks like the following:
Serial.write("AT+CMGL=\"REC UNREAD\",1\r");

The problem is, after about 30 minutes (from time to time also within 6 minutes) i get an error with the following code: +CMS ERROR: 604
The rest of the time, the M10 works fine.

Is it possible, that 20 seconds is too less between every command? Maybe the AT command is sent too often? As the carriage return i use the /r as you can see in the AT command above. I don’t know why, but some libraries also use /r/n instead of the single /r.

Do you have any idea why that error appears? The M10 should work very reliable for my project.

The following parameters/settings which i programmed i can offer:
Quectel M10
Revision: M10FAR01A02

AT&F //Factory Reset
ATE0 //Echo Mode Off
AT+CFUN = 1 //Full Phone Functionality
AT+CMGF = 1 //SMS Message Format = Text Mde
AT+CNMI = 2,0,0,0,0 //New SMS Message Indications
AT+CPMS = “SM”,“SM”,“SM”

I would be happy for any idea and help!
All the best, Thor

Hi Thor,

Max response times of each commands are included in AT commands manual document and you can send AT commands as often as you like by paying attention to the max response times of the commands.

First, I suggest you to upgrade the firmware of your module. The latest official firmware of M10F is M10FAR02A04. To upgrade the fw of the module, please send an email to support@quectel.com to get latest firmware package and upgrading tool.

Could you please check the memory storage status by AT+CPMS? command when you faced this error?

Could you please provide us AT logs as shown follows and also chipset logs? You can get the chipset log tool by local FAE after sending email to support of Quectel.


[2020-05-21_12:40:21:947]+CPIN: READY


[2020-05-21_12:40:23:290]+CREG: 0,1


[2020-05-21_12:40:24:811]+CGREG: 0,1




[2020-05-21_12:40:31:497]+CPMS: “SM”,0,35,“SM”,0,35,“SM”,0,35

[2020-05-21_12:41:03:945]+CMTI: “SM”,1

[2020-05-21_12:41:07:506]+CPMS: “SM”,1,35,“SM”,1,35,“SM”,1,35


[2020-05-21_12:41:15:823]+CMGR: “REC UNREAD”,"+9xxxxxxxxxxxx","",“2020/05/21 12:40:59+12”


[2020-05-21_12:41:39:238]+CNMI: 2,1,0,0,0


By the way, M10 is too old module. I suggest you to evaluate to use M66 and M95 2G modules for new projects which requires only 2G and also MC60 2G+GNSS combo module.

Hey mcihangir,

Thank you for your answer!

Okay sorry, I didn’t see the “max response time” column in the AT manual. Thank you for the hint!
For my command AT+CMGL is the note for the max response time in the manual:
Operation of stat depends on the storage of listed messages.

Does this mean, that the max response time depends on the size of the received messages?
I have a maximum capacity of 20 SMS with a maximum message size of about 20 characters. My delay after sending the command is now 10 seconds before i check the answer of the M10 module. Is that enough time or too long?

Thank you for the good hint about the firmware! I will write an email in the next 30 minutes to upgrade the firmware.

During the whole time of my test with the continuous AT command “AT+CMGL” every 20 seconds no SMS was on the module or received by the sim card. Therefore the memory was empty.
+CPMS: “SM”,0,20,“SM”,0,20,“SM”,0,20

Here is the AT log from my module:

13:06:41.579 -> AT+CPIN?

13:06:41.579 -> +CPIN: READY
13:06:41.612 -> 
13:06:41.612 -> OK
13:06:51.474 -> AT+CREG?

13:06:51.474 -> +CREG: 0,5
13:06:51.508 -> 
13:06:51.508 -> OK
13:07:10.079 -> AT+CGREG?

13:07:10.079 -> +CGREG: 0,5
13:07:10.113 -> 
13:07:10.113 -> OK
13:07:22.516 -> AT+CMGF=1

13:07:22.516 -> OK
13:07:36.483 -> AT+CSCS="GSM"

13:07:36.517 -> OK
13:07:50.753 -> AT+CPMS?

13:07:50.787 -> +CPMS: "SM",1,20,"SM",1,20,"SM",1,20
13:07:50.821 -> 
13:07:50.821 -> OK
13:08:36.246 -> AT+CPMS?

13:08:36.246 -> +CPMS: "SM",1,20,"SM",1,20,"SM",1,20
13:08:36.314 -> 
13:08:36.314 -> OK
13:08:47.332 -> AT+CMGR=1

13:08:47.400 -> +CMGR: "REC UNREAD","+436606xxxxxx","","2020/05/13 13:38:07+08"
13:08:47.468 -> Test
13:08:47.468 -> 
13:08:47.468 -> OK
13:09:13.505 -> AT+CNMI?

13:09:13.539 -> +CNMI: 2,0,0,0,0
13:09:13.539 -> 
13:09:13.539 -> OK

The chipset log I get when I will write the support team, do I understand that right?

Yess probably the M95 chip etc. would be better, but actually I have seven M10F chips here for my project incl. hardware for every chip. This was very expensive, so i want to try to get the best out of these chips. But for projects in the future, I think the latest chips are the better choice.

Thank you very much! Thor


For the amount of data in these SMSs, 10 seconds must be too long, and 5 seconds is enough.

For analyzing **+CMS ERROR: 604 ** error we need to check chipset logs of the module, Please contact our local FAE to get the log tool and they will help to analyze the reason. You can send email to support@quectel.com to get support from local FAE.