Skip to content

Conversation

@slim-bean
Copy link
Collaborator

The serializeHTTPHandler was missing the Content-Type header for JSON responses, causing clients to receive "text/plain; charset=utf-8" instead of the expected "application/json; charset=UTF-8".

This bug was introduced in commit d0c11a6 (Dec 2024) when Parquet support was added. The Parquet code path correctly sets the Content-Type header, but the JSON code path (the default) was left without any Content-Type header.

The issue became visible in the last 4 weeks as the v2 engine router changes (commits 72cb649 and d721511) made more query_range requests flow through this code path.

This fix ensures JSON responses from /loki/api/v1/query_range and other query endpoints have the correct Content-Type header set, matching the behavior in other parts of the codebase (see codec.go lines 686, 1304).

Fixes: https://github.com/grafana/loki/issues/[issue-number] (cherry picked from commit f27ccf6)

What this PR does / why we need it:

Which issue(s) this PR fixes:
Fixes #

Special notes for your reviewer:

Checklist

  • Reviewed the CONTRIBUTING.md guide (required)
  • Documentation added
  • Tests updated
  • Title matches the required conventional commits format, see here
    • Note that Promtail is considered to be feature complete, and future development for logs collection will be in Grafana Alloy. As such, feat PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.
  • Changes that require user attention or interaction to upgrade are documented in docs/sources/setup/upgrade/_index.md
  • If the change is deprecating or removing a configuration option, update the deprecated-config.yaml and deleted-config.yaml files respectively in the tools/deprecated-config-checker directory. Example PR

The serializeHTTPHandler was missing the Content-Type header for JSON
responses, causing clients to receive "text/plain; charset=utf-8" instead
of the expected "application/json; charset=UTF-8".

This bug was introduced in commit d0c11a6 (Dec 2024) when Parquet support
was added. The Parquet code path correctly sets the Content-Type header, but
the JSON code path (the default) was left without any Content-Type header.

The issue became visible in the last 4 weeks as the v2 engine router changes
(commits 72cb649 and d721511) made more query_range requests flow through
this code path.

This fix ensures JSON responses from /loki/api/v1/query_range and other query
endpoints have the correct Content-Type header set, matching the behavior in
other parts of the codebase (see codec.go lines 686, 1304).

Fixes: https://github.com/grafana/loki/issues/[issue-number]
(cherry picked from commit f27ccf6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants