In staging logs one can occasionally see:
app error: Response body was given for HEAD request, but should be empty (Rack::Lint::LintError)
It lacks from Bugsnag and I couldn't get a proper backtrace but looking at other nearby log lines from the same pod, I assume it is related to trying to respond with 404 to a HEAD request to a non-existing swagger docs.
{
"_index": "stg-saas-ocp.pods.system-app.20230825",
"_type": "_doc",
"_id": "MjkzMjIyMjItNGU4ZC00ZWQxLThhYjAtY2Y3ODVlOWU5N2I5",
"_version": 1,
"_score": null,
"_source": {
"@timestamp": "2023-08-25T09:00:57.370971330+00:00",
"kubernetes": {
"container_name": "system-app",
"namespace_name": "3scale-saas",
"pod_name": "system-app-6c55fb8888-q5qqf",
"container_image": "REDACTED/3scale-amp2-system-rhel7:1.17.0-268",
"container_image_id": "REDACTED/3scale-amp2-system-rhel7@sha256:cf99e474b335b4e7dced5aeca11abafb3a57e5279d1a6d9da81d675a8489113b",
"pod_ip": "REDACTED",
"host": "REDACTED"
},
"system_app": {
"rails_id": "e5d0eb95-fa6f-4017-baee-523099871f34",
"host": "REDACTED",
"remote_addr": "REDACTED",
"message": "ActionController::RoutingError (No route matches [HEAD] \"/swagger/spec.json\"):",
"log_type": "rails"
}
},
"fields": {
"@timestamp": [
"2023-08-25T09:00:57.370Z"
]
},
"sort": [
1692954057370,
117368
]
}
{
"_index": "stg-saas-ocp.pods.system-app.20230825",
"_type": "_doc",
"_id": "MDQyODg5N2YtOTgwNy00ZTk5LTk0NzctMDU5NzUzZGFlOTFj",
"_version": 1,
"_score": null,
"_source": {
"@timestamp": "2023-08-25T09:00:57.372014999+00:00",
"kubernetes": {
"container_name": "system-app",
"namespace_name": "3scale-saas",
"pod_name": "system-app-6c55fb8888-q5qqf",
"container_image": "REDACTED/3scale-amp2-system-rhel7:1.17.0-268",
"container_image_id": "REDACTED/3scale-amp2-system-rhel7@sha256:cf99e474b335b4e7dced5aeca11abafb3a57e5279d1a6d9da81d675a8489113b",
"pod_ip": "REDACTED",
"host": "REDACTED"
},
"system_app": {
"remote_addr": "REDACTED",
"timestamp": "25/Aug/2023:09:00:57 +0000",
"request": "HEAD /404 HTTP/1.1",
"status_code": "404",
"bytes": "34",
"request_time": "0.0053",
"log_type": "access"
}
},
"fields": {
"@timestamp": [
"2023-08-25T09:00:57.372Z"
]
},
"sort": [
1692954057372,
117371
]
}
This doesn't seem to affect any normal use cases. My guess would be that cause is some outdated test cases or something. But is good to fix I assume so that 404 without payload is returned to HEAD requests.