FC41D AT+QWLANOTA Returns ERROR - Could not found response_code:406

Dear Quectel Support Team,

We are experiencing an issue while trying to update the firmware of our FC41D module using the AT+QWLANOTA command. The command returns an ERROR response.

When reviewing the logs, we noticed the following error message: “Could not found response_code:406”.

Could you please check if this issue is related to the Content-Type, Content-Length, or MIME type settings on our HTTP server?

Below are our current module version, the command executed, and the complete log output:

Complete Logs:

[ATSVR]msg type:1 , msg_point = 0x41eb1c,

_atsvr_input_msg_analysis_handler

_atsvr_handle_input, argv:AT+QWLANOTA, argc:2

_atsvc_command_handle argv:AT+QWLANOTA
uri = http://examplebla.com/wifiota/otas.rbl
port = 80
Could not found response_code:406
write over
==lwip_netconn_do_close,state:0

lwip_netconn_do_close_internal, close:1
===before: tcp_close_shutdown_fin, state:4
===after tcp_close_shutdown_fin,state:5

lwip_netconn_do_close_internal, close_finished:1

==lwip_netconn_do_delconn, conn->state:0===
===lwip_netconn_do_delconn,tcp:(nil)
[cx]lwip_close : 807
request epoch time from remote server failed.http_ota download failed.at send res = 0
====FIN_WAIT_1—>TIME_WAIT====

Could you please guide us on how to resolve this error and successfully perform the OTA update?

Thank you for your assistance.

Best regards,

Hello everyone,

I wanted to share my recent OTA (Over-The-Air) update test results for the Quectel FC41D Wi-Fi module across different server environments. We are experiencing strange anomalies with specific firmware versions and server configurations. I hope this helps anyone facing similar issues, and I would love to hear your insights.

Here is the breakdown of our testing scenarios for two different firmware versions (202512160643 and 202302071736):

1. Windows Server 2016 (and later) with IIS

  • Result: OTA ERROR on both firmware versions.
  • Details: The server constantly returns an HTTP 406 (Not Acceptable) error. We have thoroughly configured all possible MIME-Type definitions and disabled/bypassed aggressive security/request filtering settings, yet the issue persists.
  • Suspected Cause: It feels like a low-level incompatibility within the HTTP, TCP, or LWIP network stacks between the FC41D’s lightweight implementation and Windows IIS.

2. Linux Ubuntu Server with Python HTTP Server

  • Result: Mixed Results.
    • Firmware 202512160643 updates successfully via OTA.
    • Firmware 202302071736 fails to update.
  • Details: For the older 202302071736 firmware, we specifically hosted the server on standard Port 80 to rule out port issues, but it still fails.

3. Windows 10 & Windows 11 (Pro/Home) with Python HTTP Server

  • Result: 100% Success.
  • Details: When running a simple Python HTTP server locally on standard Windows 10 or 11 machines, both firmware versions update flawlessly via OTA.

Summary of the Puzzle:

Why does the older FC41D firmware (202302071736) succeed on a Windows-hosted Python server but fail on an Ubuntu-hosted Python server? And why does IIS consistently reject the module’s requests with an HTTP 406 error despite correct MIME types?

If anyone has pinpointed specific HTTP header mismatches, TCP window size issues, or LWIP stack limitations with FC41D during OTA, please let me know!