1. What is the issue? Please be detailed.
I have an ODK Central instance hosted on a machine behind a NAT. I've used Rathole to tunnel the ODK Central instance to a public IP (hosted on Digital Ocean) and everything works normally (DNS, form upload, login, project listing, email). However, when trying to preview forms or downloading on an Android device, I get "Could not connect with Form Server" and "Form download failed", respectively.
I have followed the debugging steps for DNS in https://docs.getodk.org/central-troubleshooting/#preview-could-not-connect-with-server to no success. I also can download the compiled XML, which indicates that the problem wasn't a silent fail in the form upgrade. When checking the ODK logs, the nginx server returns a "POST /-/transform/xform/[id string] HTTP/1.1" 500
error, and I cannot find more detailed logs than this.
Finally, because I'm using a tunnel through a reverse proxy, I have the "upstream" SSL configuration in the .env
file, with both ports defined for HTTP and HTTPS.
I'm running ODK Central version 2023.4, the latest ODK Collect, and hosted on Debian 12 via docker compose.
2. What steps can we take to reproduce this issue?
You would need to set up a reverse proxy and tunnel to a local server that is running the docker-compose version of ODK Central, as I have described above.
3. What have you tried to fix the issue?
As mentioned above, I have tried to look into the logs, and I also followed the DNS debugging steps, thinking that it was a DNS issue.
4. Upload any forms or screenshots you can share publicly below.
I'm pretty savvy with Linux - how can I get better logs to see what might be causing the 500 failure? Is there an easy way to get those logs? I've looked through the enkento, service, and nginx containers to try and find a more detailed error message, but could not find any.