Description
Recently the manual sync in Cloudlog consistently fails with a generic "Upload failed" message in the GUI.
After troubleshooting the local environment on an Ubuntu server running Cloudlog 2.8.14, I was able to narrow down the exact behavior of the failure.
Debugging Steps Taken & Findings:
Network & TLS: A direct connection test via curl -Iv https://lotw.arrl.org/ shows that the TLSv1.3 handshake completes successfully from the server. The connection itself is fine.
LoTW Download/Import: The import mechanism works perfectly. Manually uploaded QSOs (via local desktop TQSL) are fetched and matched correctly by Cloudlog during the manual sync.
Log Analysis: Enabling log_threshold = 2 revealed that Cloudlog triggers the download query but truncates/fails on the upload. I noticed a potential typo in the logged fetch URL (.../lotwuser/lotwreport.adi... missing the hyphen), though the download still processes.
File Generation vs. Upload: Cloudlog is successfully generating the signed .tq8 file in the uploads/lotw/ folder with a fresh timestamp (e.g., dg5cw-2026-06-23-15-14-47-cloudlog.tq8). Even though the .tq8 file is successfully created by Cloudlog's internal OpenSSL routine, the final HTTP POST transmission to the ARRL upload endpoint fails silently and triggers the "Upload failed" UI message.
Conclusion
The local cryptographic signing and file creation work fine, but the actual upload payload is rejected or misrouted. It seems Cloudlog needs an update to adjust to new ARRL upload API specs (?).
Environment:
Cloudlog Version: 2.8.14
OS: Ubuntu 24.04 / Apache 2.4.58 / PHP 8.x
OpenSSL / Native PHP LotW signing (no local TQSL binary used)
Description
Recently the manual sync in Cloudlog consistently fails with a generic "Upload failed" message in the GUI.
After troubleshooting the local environment on an Ubuntu server running Cloudlog 2.8.14, I was able to narrow down the exact behavior of the failure.
Debugging Steps Taken & Findings:
Network & TLS: A direct connection test via curl -Iv https://lotw.arrl.org/ shows that the TLSv1.3 handshake completes successfully from the server. The connection itself is fine.
LoTW Download/Import: The import mechanism works perfectly. Manually uploaded QSOs (via local desktop TQSL) are fetched and matched correctly by Cloudlog during the manual sync.
Log Analysis: Enabling log_threshold = 2 revealed that Cloudlog triggers the download query but truncates/fails on the upload. I noticed a potential typo in the logged fetch URL (.../lotwuser/lotwreport.adi... missing the hyphen), though the download still processes.
File Generation vs. Upload: Cloudlog is successfully generating the signed .tq8 file in the uploads/lotw/ folder with a fresh timestamp (e.g., dg5cw-2026-06-23-15-14-47-cloudlog.tq8). Even though the .tq8 file is successfully created by Cloudlog's internal OpenSSL routine, the final HTTP POST transmission to the ARRL upload endpoint fails silently and triggers the "Upload failed" UI message.
Conclusion
The local cryptographic signing and file creation work fine, but the actual upload payload is rejected or misrouted. It seems Cloudlog needs an update to adjust to new ARRL upload API specs (?).
Environment:
Cloudlog Version: 2.8.14
OS: Ubuntu 24.04 / Apache 2.4.58 / PHP 8.x
OpenSSL / Native PHP LotW signing (no local TQSL binary used)