Resource not found
We are hosting yaade as docker container behind nginx reverse proxy. Everyday after long idle period yaade is responding with "Resource not found". After restarting the yaade container, it works again.
Long Idle (24h)
In the last image you see that yaade serves the html with resource not found.
Restart yaade container
After restart the container, everything works again as expected.
Are you using a container management solution like Portainer? It may have some default configuration of idle timeouts. Or maybe the IP changes and NGINX is not aware of it. I have never seen that on my Yaade deployments though so I don't think it's something Yaade-internal.
Yes, We are using portainer, but I see the request in the logs of yaade. So, it receives the vertex server route, which does response with 404 including an html content.
2025-01-16T08:24:40.277132617Z [vert.x-eventloop-thread-0] WARN io.vertx.ext.web.handler.impl.LoggerHandlerImpl - 172.31.0.1 - - [Thu, 16 Jan 2025 08:24:40 GMT] "GET / HTTP/1.0" 404 53 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
The fun part is, if I call "/index.html", the yaade server is responding correctly.
2025-01-16T08:25:30.039626703Z [vert.x-eventloop-thread-0] INFO io.vertx.ext.web.handler.impl.LoggerHandlerImpl - 172.31.0.1 - - [Thu, 16 Jan 2025 08:25:30 GMT] "GET /index.html HTTP/1.0" 200 496 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
After restart the container, the / route works again as expected.
2025-01-16T08:25:47.878833173Z [vert.x-eventloop-thread-0] INFO com.espero.yaade.server.Server - Started server on port 9339
2025-01-16T08:25:48.007848676Z [vert.x-eventloop-thread-0] INFO io.vertx.ext.web.handler.impl.LoggerHandlerImpl - 172.31.0.1 - - [Thu, 16 Jan 2025 08:25:47 GMT] "GET /favicon.ico HTTP/1.0" 200 61272 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
2025-01-16T08:25:48.564695352Z [vert.x-eventloop-thread-0] INFO io.vertx.ext.web.handler.impl.LoggerHandlerImpl - 172.31.0.1 - - [Thu, 16 Jan 2025 08:25:48 GMT] "GET / HTTP/1.0" 200 496 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
UPDATE: Also have an instance on another server without portainer, where I have the same result:
Do you have any hard limits on your container? Can you send the configuration?
Are any exceptions thrown before the 404? E.g. OOM
No, we use the values you suggested. Container is in state "running" and "healthy".
My guess would be this line here, but there is no log output: https://github.com/EsperoTech/yaade/blob/main/server/src/main/kotlin/com/espero/yaade/server/Server.kt#L274
Is there a way to enable some more verbose logging level?
No, we use the values you suggested. Container is in state "running" and "healthy".
My guess would be this line here, but there is no log output: https://github.com/EsperoTech/yaade/blob/main/server/src/main/kotlin/com/espero/yaade/server/Server.kt#L274
Is there a way to enable some more verbose logging level?
I don't see a reason why the stop method would be called. Also considering that you said that /index.html does still work I don't know how that should work when the server is stopped. Again, are there any suspicious logs before the 404?